具體思路:網路流的最小割等於玩網路流的最大流量,注意拆點,以及拆點後邊連的時候是拆點後第二個點連向目的地。
ac**:
#include#include#include#includeusing namespace std;
const int maxn=100010;//點數的最大值
const int maxm=400010;//邊數的最大值
const int inf=0x3f3f3f3f;
struct node
edge[maxm];
int tol;
int head[maxn];
int dep[maxn];
int gap[maxn];//gap[x]=y :說明殘留網路中dep[i]==x的個數為y
int n;//n是總的點的個數,包括源點和匯點
void init()
void addadge(int u,int v,int w)
void bfs(int start,int end)
}}int sap(int start,int end)
for(i=0; idep[edge[i].to])
}--gap[dep[u]];
dep[u]=min+1;
++gap[dep[u]];
if(u!=start)u=edge[s[--top]].from;}}
return res;
}int main()
int t1,t2;
for(int i=1; i<=m; i++)
printf("%d\n",sap(s,t+nn));
}return 0;
}
網路流 拆點 最小割點集
byteland 國 收到了一條匿名舉報,其中說當地黑幫老大正計畫一次從港口到郊區倉庫的運輸。知道運輸的時間並且知道運輸需要用到國家的高速公路網。高速公路網包含雙向的高速公路段,每個路段直接連著兩個不同的收費站。乙個收費站可能與很多其他的收費站相連。汽車只能通過收費站進入或離開高速公路網。據所知,黑...
poj Friendship 最小割 拆點
題意 在乙個關係網中,如果說a與b保持聯絡,那麼a應該知道b的 號碼。或者存在c,a知道c的 號碼,c知道b的 號碼。可以認為如果a知道b的 號碼,那麼b也知道a的 號碼。在乙個關係網中可能會出現一些意外事故,比如某人更換手機號碼了,導致他與其他人都失去了聯絡。問給定兩個人s和t,問,最少多少人出現...
網路流 最小割
標籤 網路流 最小割 原題 洛谷p2057 善意的投票 題目描述 幼兒園裡有n個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神。雖然每個人都有自己的主見,但是為了照顧一下自己朋友的想法,他們也可以投和自己本來意願相反的票。我們定義一次投票的衝突數為好朋...