Stoer Wagner演算法(最小割集)

2021-08-04 03:09:48 字數 682 閱讀 6373

演算法步驟:

設最小割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,即新建頂點u, 邊權w(u, v)=w(s, v)+w(t, v), 刪除頂點s和t, 以及與它們相連的邊.

若|v|!=1則繼續1.

模板:

#include

#include

#include

#include

#define n 505

#define inf 0x3f3f3f3f

using

namespace

std;

int g[n][n];

int v[n];

int w[n];

bool used[n];

int stoerwagner(int n)

int main()

printf("%d\n",stoerwagner(n));

}return

0;}

最小割(Stoer Wagner演算法)

簡介 割 在乙個圖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。inc...

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...