最大流问题的Ford-Fulkerson模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大流问题的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 }

 

以上是关于最大流问题的Ford-Fulkerson模板的主要内容,如果未能解决你的问题,请参考以下文章

最大流 Ford-Fulkerson算法

hiho一下 第115周:网络流一?Ford-Fulkerson算法 (Edmond-Karp,Dinic,SAP)

最大流模板

网络流初识一 (Ford-Fulkerson算法求最大流)

hdu 3549 网络流最大流 Ford-Fulkerson

最大流hihocoder 1369 : 网络流一·Ford-Fulkerson算法