最小割-poj-2914

简介: poj-2914-Minimum Cut Description Given an undirected graph, in which two vertices can be connected by multiple edges, what is the size of the minimum cut of the graph? i.e. how many edges must b

poj-2914-Minimum Cut

Description

Given an undirected graph, in which two vertices can be connected by multiple edges, what is the size of the minimum cut of the graph? i.e. how many edges must be removed at least to disconnect the graph into two subgraphs?

Input

Input contains multiple test cases. Each test case starts with two integers N and  M (2 ≤ ≤ 500, 0 ≤ ≤ × (N − 1) ⁄ 2) in one line, where N is the number of vertices. Following are M lines,  each line contains M integers A, B and C (0 ≤ A, B < N, A ≠ B, C > 0), meaning that there C edges connecting vertices A and B.

Output

There is only one line for each test case, which contains the size of the minimum cut of the graph.  If the graph is disconnected, print 0.

Sample Input

3 3

0 1 1

1 2 1

2 0 1

4 3

0 1 1

1 2 1

2 3 1

8 14

0 1 1

0 2 1

0 3 1

1 2 1

1 3 1

2 3 1

4 5 1

4 6 1

4 7 1

5 6 1

5 7 1

6 7 1

4 0 1

7 3 1

Sample Output

2

1

2

微笑题目大意:有重边的无向图,至少删去多少条边能使其变为非连通图?

分析:传统最小割最大流算法需要枚举汇点,复杂度为O(n^4)以上,故有时会超时。本题用Stoer-Wagner 算法。

微笑Stoer-Wagner 算法用来求无向图 G=(V, E)的最小割。

算法基于这样一个原理:定义图G的最小割为MinCut,对于任意顶点s,t VMinCut=min(s-t最小割,将sv缩点之后的MinCut)。在此不予证明。

Stoer-Wagner 算法流程:

1. 初始置最小割MinCut INT_MAX

2. 在 G中求出任意 s-t 最小割 c,更新MinCut = min(MinCut, c) 

3. 对 G中的顶点s,t做缩点操作。若G中顶点已被缩为一个,当前MinCut即为所求。 

----缩点操作:

ab进行缩点: 删掉点 a, b 及边(a, b),加入新节点 c,对于任意 vmat(c,v) = mat(v,c) = mat(a, v) + mat(b,v)  

---求 G=(V, E)中任意 s-t 最小割的算法:

为点集,x不属于A,定义dist[x] = mat(v[i], x)v[i]

1. 初始令集合 A={a}a为 V中任意点 。

2. 选取 V - A中的 dis[ x ]最大的点 x加入集合 

3.更新V-A中顶点的dist[ ]

4.|A|=|V|,结束。令倒数第二个加入 A的点为 s,最后一个加入 A的点为 t,则s-t 最小割为dist[t]

微笑


 

目录
相关文章
|
8月前
|
算法 数据建模
Poj 3169(差分约束系统)
Poj 3169(差分约束系统)
38 0
|
人工智能
POJ 2531
初学dfs参考别人代码,如有雷同,见怪不怪。#include using namespace std; int aa[25][25]; int maxa=0; int step[25]={0},n; void dfs(int a,int b) { int t=b; step...
719 0
poj 1455
Description n participants of > sit around the table. Each minute one pair of neighbors can change their places.
624 0
poj-1008-玛雅历
Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu。
890 0
POJ-1003-hangover
Description How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length.
771 0
|
人工智能
POJ 1936 All in All
Description You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way.
798 0
poj题目分类
http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html
777 0

热门文章

最新文章

下一篇
开通oss服务