網路流最小割(拆點)

2021-08-30 06:33:34 字數 874 閱讀 8016

具體思路:網路流的最小割等於玩網路流的最大流量,注意拆點,以及拆點後邊連的時候是拆點後第二個點連向目的地。

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個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神。雖然每個人都有自己的主見,但是為了照顧一下自己朋友的想法,他們也可以投和自己本來意願相反的票。我們定義一次投票的衝突數為好朋...