題目描述:就是讓你求無向圖最小割點數
解析:把每個點分成兩個點,連一條距離為一的邊,再把任意兩個聯通的點之間連上正無窮大的邊,這樣求出來最小割一定是割流量為一的邊。特別注意的就是源點為出發點的出點,匯點為終點的入點,否則跑出來的值一定是一。
程式
#include#include#include#includeusing namespace std;
#define inf 1e9
struct point
e[100001];
int n,m,num,s,t,x,y,c1,c2;
int head[100000],h[100000];
void add(int from,int to,int dis)
bool bfs()
} }return h[t];
}int dfs(int x,int dis)
} }if(!sum) h[x]=-1;
return sum;
}int dinic()
int main()
for(int i=1;i<=m;i++)
cout
}
網路流 最小割 洛谷P1345
很不幸,有時候奶牛會不小心踩到電腦上,農夫約翰的車也可能碾過電腦,這台倒霉的電腦就會壞掉。這意味著這台電腦不能再傳送電郵了,於是與這台電腦相關的連線也就不可用了。有兩頭奶牛就想 如果我們兩個不能互發電郵,至少需要壞掉多少臺電腦呢?請編寫乙個程式為她們計算這個最小值。以如下網路為例 1 3 2 這張圖...
洛谷1345 奶牛的電信 (最大流最小割)
洛谷1345 給出點的個數,邊的條數,源點和匯點。分別給出與邊相連的點,邊權為1。求最少刪去多少點使得源點和匯點不連通。題目是求刪點,最大流最小割演算法刪的是邊,所以要割點轉化為割邊 最大流最小割其實並不能算乙個演算法,只是將求最小割轉化為求最大流 將乙個點拆成兩個點,其中乙個點負責連線入邊,另外乙...
Luogu1345 奶牛的電信(網路流)
很不幸,有時候奶牛會不小心踩到電腦上,農夫約翰的車也可能碾過電腦,這台倒霉的電腦就會壞掉。這意味著這台電腦不能再傳送電郵了,於是與這台電腦相關的連線也就不可用了。有兩頭奶牛就想 如果我們兩個不能互發電郵,至少需要壞掉多少臺電腦呢?請編寫乙個程式為她們計算這個最小值。以如下網路為例 1 3 2 這張圖...