题意:

裸的最大流模板,比hdu1532多了个case输出。。。

思路:

还是用hdu1532那个模板。。。

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<climits>
#include<queue>
#include<stack>
#include<set>
#include<string>
#include<vector>using namespace std;
const int maxn = 510, maxm = maxn * maxn;
const int inf = 1000000000;class MaxFlow//一个挺快的模板,比一般的MaxFlow快,我也不知道为什么。。。
{
private:int next[maxm*2];int num[maxm*2];int a[maxn*2];int row_sum[maxn];int col_sum[maxn];int n , m, K;int d[maxn*2], st[maxn*2], cod[maxn][maxn];int h[maxn*2], vh[maxn*2];bool don[maxm*2],in[maxn*2];int dfs(int, int);bool visit(int, int);
public:int T;int r[maxm*2];MaxFlow() {}int Addedge(int, int, int);int Run();bool FindCircle();void Init(int m){memset(a, 0, sizeof(a));tt = 1;T = m;}int tt;~MaxFlow() {}
} mf;int MaxFlow::Addedge(int x,int y,int rr)
{next[++tt]=a[x];num[tt]=y;r[tt]=rr;a[x]=tt;next[++tt]=a[y];num[tt]=x;r[tt]=0;a[y]=tt;return tt;
}int MaxFlow::dfs(int x,int y)
{if (x==T) return y;int sig=st[x],minh=T+1;do{if (r[st[x]]){if (h[num[st[x]]]+1==h[x]){int k=dfs(num[st[x]],min(y,r[st[x]]));if (k){r[st[x]]-=k;r[st[x]^1]+=k;return k;}}minh=min(minh,h[num[st[x]]]+1);if (h[0]>T) return 0;}st[x]=next[st[x]];if (st[x]==0) st[x]=a[x];}while (sig!=st[x]);if (vh[h[x]]--==0) h[0]=T+1;vh[h[x]=minh]++;return 0;
}int MaxFlow::Run()
{for (int i=0; i<=T; i++) h[i]=vh[i]=0;for (int i=0; i<=T; i++) st[i]=a[i];vh[0]=T+1;int ret=0;while (h[0]<=T) ret+=dfs(0,K+1);return ret;
}bool MaxFlow::visit(int x,int ed)
{if (don[ed])return in[x];don[ed]=true;in[x]=true;for (int p=a[x]; p; p=next[p]){if (r[p] && (ed^p)!=1)if (visit(num[p],p)) return true;}in[x]=false;return false;
}bool MaxFlow::FindCircle()
{for (int i=0; i<=T; i++) in[i]=false;for (int i=1; i<=tt; i++) don[i]=false;for (int i=2; i<=tt; i++){if (r[i] && !don[i]){in[num[i^1]]=true;if (visit(num[i],i)) return true;in[num[i^1]]=false;}}return false;
}int main()
{int t;scanf("%d",&t);int cas=1;while(t--){int n,m;scanf("%d%d",&m,&n);int t=m;mf.Init(t);mf.Addedge(0,1,inf);for(int i=1;i<=n;i++){int s,t,c;scanf("%d%d%d",&s,&t,&c);mf.Addedge(s,t,c);}int ans=mf.Run();printf("Case %d: ",cas++);printf("%d\n",ans);}return 0;
}

hdu3549(又是最大流模板题)相关推荐

  1. [hdu3549]Flow Problem(最大流模板题)

    解题关键:使用的挑战程序设计竞赛上的模板,第一道网络流题目,效率比较低,且用不习惯的vector来建图. 看到网上其他人说此题有重边,需要注意下,此问题只在邻接矩阵建图时会出问题,邻接表不会存在的,也 ...

  2. UVA - 820 Internet Bandwidth(最大流模板题)

    题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...

  3. hdu 3549 Flow Problem(最大流模板题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Problem Description Network flow is a well-known ...

  4. 最大流 最小费用最大流模板

    模板从  这里   搬运,链接博客还有很多网络流题集题解参考. 最大流模板 ( 可处理重边 ) const int maxn = 1e6 + 10; const int INF = 0x3f3f3f3 ...

  5. 动态规划DP模板题汇总

    前言 动态规划的实现逻辑是画图分前后状态,二维数组肯定能解决,但是为了降低复杂度,又会转换成一维数组,线性DP,或者存在反向DP,能节省很多思考的情况.并且保证状态的更新不会影响之前状态的计算结果. ...

  6. 图论-有向图的连通性模板题(hdu1296)(hdu1827)

    1.强连通分量: 强连通分量可以理解为边数最少的情况下是一个环. 这里写了一个模板题用的是tarjan算法,当然还有其他算法. tarjan算法的关键其实还是对于num数组和low数组的使用 然后可以 ...

  7. P1339 热浪 最短路径模板题

    这么naive的题面一看就是最短路模板题~~~ ok.首先是floyd算法,tts,记得把k放在最外面就行了. 1 #include <cstdio> 2 #include <cst ...

  8. HDU2255 奔小康赚大钱(km模板题)

    Description 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.         这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓, ...

  9. HDU1166 敌兵布阵(树状数组模板题)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

最新文章

  1. iOS 本地DNS解析方法
  2. GC悲观策略之Parallel GC篇
  3. 字符串之单词原地逆转
  4. 恒生java开发复试_2019恒生电子面试经验(JAVA开发人员,实施工程师等)
  5. linux mysql插入数据乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题
  6. Ubuntu安装Vim编辑器
  7. 陶哲轩实分析 定理 13.4.6
  8. linux不要了装windows,从windows到linux —— 装linux吧,你不要怕!
  9. Wampserver下载安装教程
  10. 8 升满壶和两个分别是 5 升、3 升的空壶 如何得到 4 升水?
  11. 自动化测试-uiautomatorviewer.bat
  12. oracle定时器,调用存储过程,定时从n张表中取值新增到本地一张表中
  13. unity 控制对象移动、旋转
  14. 对不同角色用户设置不同的系统首页
  15. java华容道代码_用java编程 华容道游戏
  16. Python + Excel | 可视化疫苗接种随时间变化情况
  17. [Java]代码实现图像转换成文本
  18. C#学习笔记(四)-- .NET Framework与C#简介
  19. 【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结
  20. android自定义虚线,Android 绘制虚线

热门文章

  1. 利用阿里云自定义镜像实现服务器数据/网站快速迁移
  2. cd库图像处理php,PHP图像处理类库及演示分享
  3. python桌面快捷图标_python 创建桌面快捷方式 | 学步园
  4. VTK修炼之道77:交互部件_分割/配准类Widget与其他Widget
  5. 删除结果集中字段重复的方法
  6. using的几种用法
  7. SOCKET编程-时间服务器和客户端的实现
  8. 字符串和整形、浮点类型的相互转化
  9. Problem G: 部分复制字符串
  10. 一步步用zTree(2)