洛谷 P1345 奶牛的電信

2021-08-15 11:33:19 字數 608 閱讀 8800

題目描述:就是讓你求無向圖最小割點數

解析:把每個點分成兩個點,連一條距離為一的邊,再把任意兩個聯通的點之間連上正無窮大的邊,這樣求出來最小割一定是割流量為一的邊。特別注意的就是源點為出發點的出點,匯點為終點的入點,否則跑出來的值一定是一。

程式

#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 這張圖...