HDU 3549 — Flow Problem 入门题
admin
2024-04-10 12:54:21

原题:http://acm.hdu.edu.cn/showproblem.php?pid=3549

题意:给定n个点,m条边,以及边上的容量,问1到n的最大流;

#include
#include
#include
#include
#includeusing namespace std;
#define inf 999999999;
const int N = 20;
int cap[N][N], flow[N][N];			//cap表示容量,flow表示当前流量; 
int a[N], p[N];			//a[i]表示从s到i的最小残量,p表示增广路上一节点; 
int n, m;int bfs(int s, int t)
{queueq;memset(flow, 0, sizeof(flow));int ans = 0;while(1){memset(a, 0, sizeof(a));a[s] = inf;q.push(s);while(!q.empty()){int u = q.front();q.pop();for(int v = 1;v<=n;v++){if(!a[v] && cap[u][v]>flow[u][v]){p[v] = u;a[v] = min(a[u], cap[u][v]-flow[u][v]);q.push(v);}}}if(a[t] == 0)break;for(int u = t;u!=s;u = p[u]){flow[p[u]][u]+=a[t];flow[u][p[u]]-=a[t];}ans+=a[t];}return ans;
}int main()
{int cas;int T = 0;scanf("%d", &cas);while(cas--){memset(cap, 0, sizeof(cap));scanf("%d%d", &n, &m);for(int i = 1;i<=m;i++){int u, v, w;scanf("%d%d%d", &u, &v, &w);cap[u][v]+=w;}printf("Case %d: %d\n", ++T, bfs(1, n));}return 0;
}

相关内容

热门资讯

把音乐厅搬进喀斯特溶洞是什么体...   近日,一场融合多元艺术形式的洞穴音乐会在贵州省修文县举行,五百余名观众在喀斯特溶洞之中,感受了一...
教师专享福利!北京这些景区免票... 新京报讯 据首都教育消息,教师节将至,北京多家景区为老师们准备了专属免票福利!这份优惠合集已整理好,...
黑茶,喝的是一种境界与健康 在专门用来喝黑茶的茶具“飘逸杯”里,黑茶茶汤看起来并不像“黑茶”这个名字那样黑黢黢的一团。 玻璃器皿...
上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...