学长的代码
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std; const int MAXN = 1005;
const
int oo = 1e9+7; struct Edge
{

int
v, flow, next;
}
edge[MAXN];
int
Head[MAXN], cnt;
int
Layer[MAXN]; void InIt()
{

cnt = 0;
memset(Head, -1, sizeof(Head));
}

void
AddEdge(int u, int v, int flow)
{

edge[cnt].v = v;
edge[cnt].flow = flow;
edge[cnt].next = Head[u];
Head[u] = cnt++; swap(u, v); edge[cnt].v = v;
edge[cnt].flow = 0;
edge[cnt].next = Head[u];
Head[u] = cnt++; }
bool
BFS(int start, int End)
{

memset(Layer, 0, sizeof(Layer));
queue<int> Q;
Q.push(start);
Layer[start] = 1; while(Q.size())
{

int
u = Q.front();Q.pop(); if(u == End)return true; for(int j=Head[u]; j!=-1; j=edge[j].next)
{

int
v = edge[j].v; if(Layer[v] == 0 && edge[j].flow)
{

Layer[v] = Layer[u] + 1;
Q.push(v);
}
}
}
return false;
}

int
DFS(int u, int MaxFlow, int End)
{

if
(u == End)return MaxFlow; int uflow = 0; for(int j=Head[u]; j!=-1; j=edge[j].next)
{

int
v = edge[j].v; if(Layer[v]==Layer[u]+1 && edge[j].flow)
{

int
flow = min(edge[j].flow, MaxFlow-uflow);
flow = DFS(v, flow, End); edge[j].flow -= flow;
edge[j^1].flow += flow;
uflow += flow; if(uflow == MaxFlow)
break
;
}
}
if(uflow == 0)
Layer[u] = 0; return uflow;
}

int
Dinic(int start, int End)
{

int
MaxFlow = 0; while(BFS(start, End) == true)
MaxFlow += DFS(start, oo, End); return MaxFlow;
}
int main()
{

int
N, M; while(scanf("%d%d", &M, &N) != EOF)
{

int
u, v, flow; InIt(); while(M--)
{

scanf("%d%d%d", &u, &v, &flow);
AddEdge(u, v, flow);
}
printf("%d\n", Dinic(1, N));
}
return 0;
}

最新文章

  1. php伪静态--隐藏地址实际路径方法
  2. JQuery.validate.js 表单验证
  3. ABAP SPLIT
  4. tcp/udp高并发和高吐吞性能测试工具
  5. 解决jQuery UI 对话框兼容性问题
  6. Java 反射的应用
  7. HTML5正确的嵌入flash
  8. java实现吸血鬼数字
  9. C# XML - XmlNode and XmlAttribute
  10. 密钥,密钥对,公钥,pfx,jks和https的几个概念
  11. hbase的thriftserver开启
  12. mysql tee 命令
  13. B2C 电商网站需要怎样的 ERP 系统
  14. cocos2dx中Action汇总
  15. 无插件,直接加参数,chrome它可以模拟手机浏览器
  16. 我学的是设计模式的视频教程——装饰图案,装饰图案VS代理模式
  17. 在Maven Central发布中文API的Java库
  18. # 20175333曹雅坤《Java程序设计》第五周学习总结
  19. python登录网页版微信发送消息
  20. asp相关知识整理

热门文章

  1. 面试题思考:什么是 Java 的反射机制
  2. Ubuntu右键添加:open in terminal
  3. Python基础——原生数据类型(字典,列表,元组,字符串)
  4. [Algorithms] Heap and Heapsort
  5. CodeFores 665D Simple Subset(贪心)
  6. openssl update--centos 6.5
  7. jq左右按钮点击幻灯片
  8. 每隔10秒钟打印一个“Helloworld”
  9. Windows Server 2016 下执行定时任务(英文系统)
  10. Django框架--路由分配系统