其实还是不是很懂dinic-----

抄了一个模板---

http://www.cnblogs.com/naturepengchen/articles/4403408.html

先放在这里~~~

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std; const int maxn = ;
const int INF = ( << ) - ; struct Edge{
int v,next,c;
}e[maxn]; int st,ed,lev[maxn],first[maxn],now[maxn],ecnt;
int n,m; void init(int a,int b){
st = a; ed = b;
memset(first,-,sizeof(first));
ecnt = ;
} void addedges(int u,int v,int c){
e[ecnt].next = first[u];
e[ecnt].v = v;
e[ecnt].c = c;
first[u] = ecnt++; e[ecnt].next = first[v];
e[ecnt].v = u;
e[ecnt].c = ;
first[v] = ecnt++;
} bool bfs(){
queue<int> q;
while(!q.empty()) q.pop();
q.push(st);
memset(lev,-,sizeof(lev));
lev[st] = ;
while(!q.empty()){
int x = q.front();q.pop();
for(int i = first[x];~i;i = e[i].next){
int v = e[i].v;
if(lev[v] < && e[i].c > ){
lev[v] = lev[x] + ;
q.push(v);
}
}
}
return lev[ed] != -;
} int dfs(int p,int minf){
if(p == ed || minf == ) return minf;
for(int &i = now[p];~i;i = e[i].next){
int v = e[i].v;
if(lev[v] == lev[p] + && e[i].c > ){
int d = dfs(v,min(e[i].c,minf));
if(d > ){
e[i].c -= d;
e[i^].c += d;
return d;
}
}
}
return ;
} int dinic(){
int max_flow = ,p1;
while(bfs()){
memcpy(now,first,sizeof(first));
while((p1 = dfs(st,INF)) > )
max_flow += p1;
}
return max_flow;
} int main(){
int T;
int kase = ;
scanf("%d",&T);
while(T--){
scanf("%d %d",&n,&m);
init(,n);
for(int i = ;i < m;i++){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
addedges(a,b,c);
}
printf("Case %d: %d\n",++kase,dinic());
}
return ;
}

最新文章

  1. git检出与创建的过程
  2. 1 Two Sum
  3. 详解web.xml中元素的加载顺序
  4. ArrayList 和 LinkedList 的区别
  5. neon指令,注意事项
  6. hdu 3117 Fibonacci Numbers
  7. 使用Web Service进行网络编程-----Web Service简介
  8. Linux防火墙设置(转载)
  9. SQL Server 2012 Enterprise Core Edition和SQL Server 2012 Enterprise Edition的区别
  10. devexpress皮肤设置
  11. HDU2015校赛 The Country List
  12. VB.Net中点击按钮(Button)会重复提交两次表单
  13. Chapter 2 Open Book——35
  14. Python 数据分析包:pandas 基础
  15. postgresql跨服务器复制数据库
  16. Dubbo的三种连接方式
  17. gethostbyname(domain) 老是返回 NULL, 凌乱了
  18. 17秋 软件工程 Alpha 事后诸葛亮会议
  19. 强制SVN上传代码时添加日志
  20. colgroup中col定义表格单元格宽度

热门文章

  1. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
  2. 创建一个dynamics CRM workflow (二) - Build in Workflows
  3. gulp打包压缩代码以及图片
  4. PySimpleGUI 的第一个桌面软件
  5. 【转载】springboot注解
  6. Java 习惯用法总结
  7. BZOJ 1901 Dynamic Rankings (整体二分+树状数组)
  8. nginx的一些
  9. Ubuntu下安装Tensorflow
  10. 使用Word2016直接发布博客