首页 > 其他 > 详细

最大流

时间:2015-11-21 21:00:51      阅读:314      评论:0      收藏:0      [点我收藏+]
  • 模板题

    poj3469

技术分享
 1 #include<stdio.h>
 2 #include<algorithm>
 3 #include<string.h>
 4 #include<queue>
 5 using namespace std;
 6 #define maxm 450000
 7 #define maxn 20005
 8 #define inf 0x3f3f3f3f
 9 queue<int>Q;
10 int cnt,v[maxm<<1],Next[maxm<<1],w[maxm<<1],first[maxn],cur[maxn];
11 int SSS,TTT,dep[maxn];
12 void add(int st,int end,int val){
13     v[cnt]=end;w[cnt]=val;Next[cnt]=first[st];first[st]=cnt++;
14     v[cnt]=st;w[cnt]=0;Next[cnt]=first[end];first[end]=cnt++;
15 }
16 bool bfs(){
17     memset(dep,0,sizeof(dep));
18     dep[SSS]=1;
19     Q.push(SSS);
20     while(!Q.empty()){
21         int x=Q.front();Q.pop();
22         for(int e=first[x];e!=-1;e=Next[e]){
23             if(!dep[v[e]]&&w[e]>0){
24                 dep[v[e]]=dep[x]+1;
25                 Q.push(v[e]);
26             }
27         }
28     }
29     return dep[TTT];
30 }
31 int dfs(int x,int lim){
32     if(x==TTT)return lim;
33     int lim1=lim;
34     for(int e=cur[x];e!=-1;e=Next[e]){
35         if(dep[v[e]]==dep[x]+1&&w[e]>0){
36             int flow=dfs(v[e],min(w[e],lim));
37             cur[x]=e;    
38             w[e]-=flow;w[e^1]+=flow;
39             if((lim-=flow)<=0)break;
40         }
41     }
42     if(lim==lim1)dep[x]=0;
43     return lim1-lim;
44 }
45 int main(){
46     int n,m,a,b,c;
47     scanf("%d%d",&n,&m);
48     SSS=n+1;TTT=n+2;
49     memset(first,-1,sizeof(first));
50     for(int i=1;i<=n;i++){
51         scanf("%d%d",&a,&b);
52         add(SSS,i,a);add(i,TTT,b);
53     }
54     for(int i=1;i<=m;i++){
55         scanf("%d%d%d",&a,&b,&c);
56         add(a,b,c);add(b,a,c);
57     }
58     int ans=0;
59     while(bfs()){
60         memcpy(cur,first,sizeof(first));    
61         ans+=dfs(SSS,inf);
62     }
63     printf("%d\n",ans);
64     return 0;
65 }
View Code

  学习了一个当前【胡】优化,发现其实刘as*hole的模板并没有用到呢~  

  之前以为prey老父亲给的模板里if(lim==lim1)dep[x]=0;就是当前弧优化,然而并不是的样子,,,原因是什么呢——因为加了cur之后变快啦lululu~

最大流

原文:http://www.cnblogs.com/Ngshily/p/4984694.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!