最小割(Stoer Wagner演算法)

2021-09-25 12:55:25 字數 783 閱讀 4199

簡介:

割:在乙個圖g(v,e)中v是點集,e是邊集。在e中去掉乙個邊集c使得g(v,e-c)不連通,c就是圖g(v,e)的乙個割;

最小割:在g(v,e)的所有割中,邊權總和最小的割就是最小割。

例題:minimum cut

描述:n個頂點。下面是m行,a,b,c,這意味著有c個邊連線頂點a和b。

#include

#include

#include

#include

using namespace std;

#define maxn 1005

#define inf 0x3f3f3f3f

int mp[maxn]

[maxn]

;int n, m;

bool combine[maxn]

;int minc = inf;

void

search

(int

&s,int

&t)}

if(t==tmpj)

vis[tmpj]=1

; s = t, t = tmpj;

for(

int j =

0;j < n;j++)}

minc=w[t];}

intmincut()

}return ans;

}int

main()

printf

("%d\n"

,mincut()

);}}

Stoer Wagner演算法(最小割集)

演算法步驟 設最小割cut inf,任選乙個點s到集合a中,定義w a,p 為a中的所有點到a外一點p的權總和.對剛才選定的s,更新w a,p 該值遞增 選出a外一點p,且w a,p 最大的作為新的s,若a g v 則繼續2.把最後進入a的兩點記為s和t,用w a,t 更新cut.合併st,即新建頂...

Stoer Wagner演算法(全域性最小割)

題解 全域性最小割stoer wagner演算法 附上 關於證明 的證明寫得非常詳細,在此不再贅述 關於時間複雜度 最大鄰接搜尋是來求任意非固定兩點的最小割,做完一次最大鄰接搜尋之後還要縮點重做,直到全圖只剩乙個點 所以使用堆優化的複雜度大概是o n 2logn 關於實現 初寫stoer wagne...

全域性最小割Stoer Wagner演算法

借鑑 提到無向圖的最小割問題,首先想到的就是ford fulkerson演算法解s t最小割,通過edmonds karp實現可以在o nm2 時間內解決這個問題 n 為圖中的頂點數,m 為圖中的邊數 但是全域性最小割和s t最小割不同,並沒有給定的指定的源點s和匯點t,如果通過ford fulke...