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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最大流问题的Ford-Fulkerson模板

發布時間:2024/4/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最大流问题的Ford-Fulkerson模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

詳細講解:http://blog.csdn.net/smartxxyx/article/details/9293665

下面貼上我的第一道最大流的題:

hdu3549

1 #include<stdio.h> 2 #include<algorithm> 3 #include<stdlib.h> 4 #include<iostream> 5 #include<string.h> 6 #include<math.h> 7 #include<vector> 8 #include<map> 9 #include<queue> 10 struct pp 11 { 12 int x; 13 int cap; 14 int pre; 15 }; 16 const int N=1e8; 17 bool used[30]; 18 using namespace std; 19 vector<pp>GG[30]; 20 void add(int from,int to,int vv) 21 { pp ss; 22 ss.cap=vv;ss.x=to;ss.pre=GG[to].size(); 23 GG[from].push_back(ss); 24 ss.cap=0;ss.x=from;ss.pre=GG[from].size()-1; 25 GG[to].push_back(ss); 26 } 27 int dfs(int x,int y,int co) 28 { 29 if(x==y) 30 { 31 return co; 32 } 33 used[x]=true; 34 int i,j; 35 for(i=0;i<GG[x].size();i++) 36 { int cc ; 37 pp &LL=GG[x][i]; 38 if(!used[LL.x]&&LL.cap>0) 39 { 40 cc=dfs(LL.x,y,min(co,LL.cap)); 41 if(cc>0) 42 { 43 LL.cap-=cc; 44 GG[LL.x][LL.pre].cap+=cc; 45 return cc; 46 } 47 } 48 } 49 return 0; 50 } 51 int max_flow(int x,int t) 52 { 53 int flow=0; 54 while(1) 55 {memset(used,0,sizeof(used)); 56 int kk=dfs(x,t,N); 57 if(kk==0) 58 { 59 return flow; 60 } 61 else flow+=kk; 62 } 63 64 } 65 int main(void) 66 { 67 int i,j,k,p,q; 68 scanf("%d",&k); 69 70 for(i=1;i<=k;i++) 71 { for(j=0;j<30;j++) 72 GG[j].clear(); 73 scanf("%d %d",&p,&q); 74 int x;int y;int n,m; 75 for(j=0;j<q;j++) 76 { 77 scanf("%d %d %d",&x,&y,&n); 78 add(x,y,n); 79 } 80 int M=max_flow(1,p); 81 printf("Case %d: %d\n",i,M); 82 } 83 return 0; 84 }

?DINIC算法

1 #include<stdio.h> 2 #include<algorithm> 3 #include<stdlib.h> 4 #include<iostream> 5 #include<string.h> 6 #include<math.h> 7 #include<vector> 8 #include<map> 9 #include<queue> 10 using namespace std; 11 struct node 12 { 13 int to; 14 int cap; 15 int rev; 16 }; 17 int level[20]; 18 int iter[20]; 19 vector<node>vec[20]; 20 void add_edge(int from,int to,int cap ) 21 { 22 vec[from].push_back(node {to,cap,vec[to].size()}); 23 vec[to].push_back(node {from,0,vec[from].size()-1}); 24 } 25 void BFS(int s); 26 int dfs(int id,int t,int f ); 27 int max_flow(int s,int t); 28 const int N=1e9; 29 int main(void) 30 { 31 int i,j,k,p,q; 32 int x,y; 33 scanf("%d",&k); 34 int s; 35 for(s=1; s<=k; s++) 36 { 37 scanf("%d %d",&p,&q); 38 for(i=0;i<20;i++) 39 { 40 vec[i].clear(); 41 } 42 for(i=0; i<q; i++) 43 { 44 int z; 45 scanf("%d %d %d",&x,&y,&z); 46 add_edge(x,y,z); 47 } 48 int sum=max_flow(1,p); 49 printf("Case %d: ",s); 50 printf("%d\n",sum); 51 } 52 return 0; 53 } 54 void BFS(int s) 55 { 56 memset(level,-1,sizeof(level)); 57 queue<int>que; 58 level[s]=0; 59 que.push(s); 60 while(!que.empty()) 61 { 62 int id=que.front(); 63 que.pop(); 64 for(int i=0; i<vec[id].size(); i++) 65 { 66 node x=vec[id][i]; 67 if(level[x.to]<0&&x.cap>0) 68 { 69 level[x.to]=level[id]+1; 70 que.push(x.to); 71 } 72 } 73 } 74 } 75 int dfs(int id,int t,int f ) 76 { 77 if(t==id)return f; 78 for(int &i=iter[id]; i<vec[id].size(); i++) 79 { 80 node &vv=vec[id][i]; 81 if(level[vv.to]>level[id]&&vv.cap>0) 82 { 83 int d=dfs(vv.to,t,min(f,vv.cap)); 84 if(d>0) 85 { 86 vv.cap-=d; 87 vec[vv.to][vv.rev].cap+=d; 88 return d; 89 } 90 } 91 } 92 return 0; 93 } 94 int max_flow(int s,int t) 95 { 96 int flow=0; 97 for(;;) 98 { 99 BFS(s); 100 if(level[t]<0) 101 { 102 return flow; 103 } 104 int f=0; 105 memset(iter,0,sizeof(iter)); 106 while( (f=dfs(s,t,N))>0) 107 { 108 if(f==0)break; 109 flow+=f; 110 } 111 } 112 }

?

轉載于:https://www.cnblogs.com/zzuli2sjy/p/5202414.html

總結

以上是生活随笔為你收集整理的最大流问题的Ford-Fulkerson模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久国久产久精永久网页 | 亚洲天堂精品在线观看 | 久久精品免费在线 | cekc老妇女cea0 | 国产二区视频 | 国产特黄aaaaa毛片 | 五月婷婷爱| 欧美在线性视频 | 午夜视频福利在线观看 | 99久久国产宗和精品1上映 | 色久网| 奶水旺盛的女人伦理 | 一区二区视频在线看 | 国产一级片子 | 性xxxx狂欢老少配o | 婷婷免费视频 | av四虎| 日韩欧美一区视频 | 男女av免费| 亚洲AV无码精品国产 | 国产富婆一区二区三区 | 国产毛片视频 | 99er视频| 国产精品无码一区二区无人区多人 | 午夜在线一区二区三区 | 亚洲男人天堂2018 | 97狠狠操| 成人资源在线 | 亚洲一二三不卡 | 深夜福利视频在线 | 日本黄色美女网站 | 午夜免费高清视频 | 国产精品7777| 国产成人一区二区三区视频 | 一本加勒比北条麻妃 | 日韩女同互慰一区二区 | 日美韩av | 卡通动漫精品一区二区三区 | 亚洲调教欧美在线 | 欧洲女女同性videoso | 深夜福利一区二区 | 国产精品色网 | 成人av视屏| 久久久999成人 | 裸体按摩www性xxxcom | 日本h在线 | 日韩国产一区 | 国产一区久久久 | 亚洲AV成人无码一二三区在线 | 毛茸茸多毛bbb毛多视频 | 国产精品乱码久久久久久久久 | 瑟瑟视频在线免费观看 | 午夜福利电影一区 | 日本三级全黄 | 嫩草视频在线观看免费 | 久久九九国产 | 欧美在线观看视频一区二区 | 亚洲中文字幕无码不卡电影 | 最新国产在线视频 | 精品成人无码久久久久久 | 一本一道久久a久久精品蜜桃 | 亚洲欧美色图视频 | 五月婷婷一区 | 艳母在线视频 | 污片视频在线观看 | 亚洲a一区二区 | 黄色国产一区二区 | 国产一级爽片 | 天堂综合网 | 国产视频一| 在线观看99 | 欧美性生活一区二区 | 羞羞色院91蜜桃 | 无套内谢老熟女 | 天天想你在线观看完整版电影高清 | 久久国产精品免费观看 | jzjzjzjzj亚洲成熟少妇 | 永久免费精品视频 | 人妻天天爽夜夜爽一区二区三区 | 色羞羞| 亚洲欧美日本在线观看 | 久久精品tv | 麻豆成人精品国产免费 | 性猛交ⅹxxx富婆视频 | 日本久久不卡 | 日韩成人在线观看视频 | 调教丰满的已婚少妇在线观看 | 免费a网 | 亚洲综合激情网 | 日韩骚片 | 欧美成人午夜剧场 | 中文在线观看免费视频 | 国产精品夜夜 | 人人妻人人爽一区二区三区 | 亚洲三区视频 | 最新网址av| 久久精品女人毛片国产 | 亚洲综合av网 | av在线免费网站 |