浏览器标题切换
浏览器标题切换end

Day66:HDU3549- Flow Problem-最大流模板题-EK算法

求最大流模板题

 

用了EK算法,即bfs+max_flow

 

具体解析可以看我这篇博客https://www.cnblogs.com/OFSHK/p/12231765.html#_label3

 

AC代码:

复制代码
 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<queue>
 4 #include<string.h>
 5 using namespace std;
 6 #define inf 0x3f3f3f3f
 7 
 8 const int N=20;
 9 int e[N][N],s,t,m,n,pre[N];
10 bool book[N];
11 
12 bool bfs()
13 {
14 //    memset(book,0,sizeof(book));
15 //    memset(pre,0,sizeof(pre));
16     for(int i=0;i<=t;i++)
17         book[i]=pre[i]=0;
18     queue<int>Q;
19     Q.push(s);
20     book[s]=1;
21     while(!Q.empty())
22     {
23         int u=Q.front();
24         Q.pop();
25         if(u==t)
26             return 1;
27         for(int i=1; i<=n; i++)
28         {
29             if(book[i]==0)
30             {
31                 if(e[u][i])
32                 {
33                     book[i]=1;
34                     pre[i]=u;
35                     Q.push(i);
36                 }
37             }
38         }
39     }
40     return 0;
41 }
42 
43 int max_flow()
44 {
45     int maxflow=0;
46     while(bfs())
47     {
48 //        if(bfs()==0)
49 //            return maxflow;
50         int minn=inf;
51         for(int i=t; i!=s; i=pre[i])
52             minn=min(minn,e[pre[i]][i]);
53         for(int i=t; i!=s; i=pre[i])
54         {
55             e[pre[i]][i]-=minn;
56             e[i][pre[i]]+=minn;
57         }
58         maxflow+=minn;
59     }
60     return maxflow;
61 }
62 
63 int main()
64 {
65     int u,v,w,tt=1,T;
66     scanf("%d",&T);
67     while(T--)
68     {
69         scanf("%d %d",&n,&m);
70         memset(e,0,sizeof(e));
71         s=1,t=n;
72         for(int i=1; i<=m; i++)
73         {
74             int u,v,w;
75             scanf("%d %d %d",&u,&v,&w);
76             e[u][v]+=w;
77         }
78         int ans=max_flow();
79         printf("Case %d: %d\n",tt++,ans);
80     }
81     return 0;
82 }
View Code
复制代码

 

posted @   抓水母的派大星  阅读(135)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示