日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)

發(fā)布時(shí)間:2024/4/11 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu3549(网络流入门题-最大流的Ford-Fulkerson算法) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目:Flow Problem

?

網(wǎng)絡(luò)流深入學(xué)習(xí)請(qǐng)戳這里。

Ford-Fulkerson方法依賴于三種重要思想,這三個(gè)思想就是:殘留網(wǎng)絡(luò),增廣路徑和割。

Ford-Fulkerson方法是一種迭代的方法。開始時(shí),對(duì)所有的u,v∈V有f(u,v)=0,即初始狀態(tài)時(shí)流的值為0。在每次迭代中,可通過(guò)尋找一條“增廣路

徑”來(lái)增加流值。增廣路徑可以看成是從源點(diǎn)s到匯點(diǎn)t之間的一條路徑,沿該路徑可以壓入更多的流,從而增加流的值。反復(fù)進(jìn)行這一過(guò)程,直至增廣路

徑都被找出來(lái),根據(jù)最大流最小割定理,當(dāng)不包含增廣路徑時(shí),f是G中的一個(gè)最大流。

#include <stdio.h> #include <iostream> #include <string.h> #include <queue>const int N=1005;int pre[N]; //保存增廣路徑上的點(diǎn)的前驅(qū)頂點(diǎn) bool vis[N]; int map[N][N]; //殘留網(wǎng)絡(luò)容量int s,t; //s為源點(diǎn),t為匯點(diǎn) int n,m;bool BFS() //找增廣路 {int i,cur;std::queue<int>Q;memset(pre,0,sizeof(pre));memset(vis,0,sizeof(vis));vis[s]=true; Q.push(s);while(!Q.empty()){cur=Q.front();Q.pop();if(cur==t) return true; //如果已達(dá)到匯點(diǎn)t,表明已經(jīng)找到一條增廣路徑,返回true.for(i=1;i<=n;i++){if(!vis[i]&&map[cur][i]) //只有殘留容量大于0時(shí)才存在邊{Q.push(i);pre[i]=cur;vis[i]=true;}}}return false; }int Max_Flow() {int i,ans=0;while(true){if(!BFS()) return ans; //如果找不到增廣路徑就返回。int Min=999999999;for(i=t;i!=s;i=pre[i]) //通過(guò)pre[]數(shù)組查找增廣路徑上的邊,求出殘留容量的最小值。Min=std::min(Min,map[pre[i]][i]);for(i=t;i!=s;i=pre[i]){map[pre[i]][i]-=Min;map[i][pre[i]]+=Min;}ans+=Min;} }int main() {int T,k=1;int u,v,c;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);s=1; t=n;memset(map,0,sizeof(map));while(m--){scanf("%d%d%d",&u,&v,&c);map[u][v]+=c;}printf("Case %d: %d\n",k++,Max_Flow());}return 0; }



?

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。