題目鏈接: https://nanti.jisuanke.com/t/36

題意:中文題目誒~

思路: 最大流模板題....

關於最大流算法blog:

  http://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html

  http://blog.csdn.net/y990041769/article/details/21026445

  http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html

代碼:

 #include <iostream>
#include <stdio.h>
#include <queue>
#include <string.h>
using namespace std; const int MAXN=2e2+;
const int inf=0x7fffffff;
int capacity[MAXN][MAXN];//記錄殘留網絡流量
int flow[MAXN]; //標記從源點到當前節點實際還剩多少流量可用
int pre[MAXN]; //pre[i]爲i的父親節點
int n, m; int bfs(int src, int des){
queue<int> q;
while(!q.empty()){
q.pop();
}
for(int i=; i<=m; i++){
pre[i]=-;
}
pre[src]=;
flow[src]=inf;
q.push(src);
while(!q.empty()){
int indx=q.front();
q.pop();
if(indx==des) break;//找到了增廣徑
for(int i=; i<=m; i++){
if(i!=src&&capacity[indx][i]>&&pre[i]==-){
pre[i]=indx;
flow[i]=min(capacity[indx][i], flow[indx]);
q.push(i);
}
}
}
if(pre[des]==-) return -;
return flow[des];
} int edmond_karp(int src, int des){
int increasement=;
int sumflow=;
while((increasement=bfs(src, des))!=-){
int k=des; //利用前區尋找路徑
while(k!=src){
int last=pre[k];
capacity[last][k]-=increasement;//改變正向邊容量
capacity[k][last]+=increasement;//改變反向邊容量
k=last;
}
sumflow+=increasement;
}
return sumflow;
} int main(void){
int start, end, ci;
while(~scanf("%d%d", &n, &m)){
memset(capacity, , sizeof(capacity));
memset(flow, , sizeof(flow));
for(int i=; i<n; i++){
scanf("%d%d%d", &start, &end, &ci);
if(start==end) continue;
capacity[start][end]+=ci;//可能有重邊
}
printf("%d\n", edmond_karp(, m));
}
return ;
}

最新文章

  1. 多线程相关------临界区CriticalSection
  2. IIS不支持apk文件下载
  3. 并发-Java中的Copy-On-Write容器
  4. php 环境的搭建
  5. 2016年12月8日 星期四 --出埃及记 Exodus 21:3
  6. SqlServer2008快照隔离模式的业务应用
  7. ZOJ2929 Penalty Kick(概率)
  8. Halcon学习笔记之缺陷检测(一)
  9. hdoj 5112 A Curious Matt
  10. Linux Shell编程(1)——shell编程简介
  11. 【KMP】Period
  12. JavaScript数组遍历(迭代)方法 8种
  13. 找出k个数相加得n的所有组合
  14. HTML学习笔记Day1
  15. Cordova编译报AAPT错误的解决方法
  16. html+css实现小米商城首页静态页面
  17. Kong安装简介
  18. C++虚析构函数的作用
  19. Hive—学习笔记(一)
  20. java 泛型详解(转)

热门文章

  1. js比较3个数字的大小
  2. EasyDarwin开源流媒体云平台之云台ptz控制设计与实现
  3. ECMAscript 没有对该方法进行标准化,因此反对使用它。 es 日期格式化
  4. mysql 5.6 bug
  5. 阿里妈妈-RAP项目的实践(3)
  6. Oracle查询正在执行的SQL语句
  7. Java 8新特性之旅:使用Stream API处理集合
  8. 从ffmpeg filter里出来的数据直接送给avcodec_encode_audio2编码,写文件有错。
  9. Entityframework连接Mysql遇到的问题
  10. js日期的初始化的格式