poj 1273最大流dinic算法模板
#include<stdio.h>
#include<string.h>
#define N 300
#define inf 0x7fffffff
#include<queue>
using namespace std;
struct node {
int u,v,w,next;
}bian[N*4];
int head[N],yong,d[N],s,t;
void addedge(int u,int v,int w) {
bian[yong].u=u;
bian[yong].v=v;
bian[yong].w=w;
bian[yong].next=head[u];
head[u]=yong++;
}
int Min(int a,int b) {
return a>b?b:a;
}
int bfs() {
int i,cur,v;
queue<int>q;
memset(d,0,sizeof(d));
q.push(s);
d[s]=1;
while(!q.empty()) {
cur=q.front();
q.pop();
for(i=head[cur];i!=-1;i=bian[i].next) {
v=bian[i].v;
if(bian[i].w&&!d[v]) {
d[v]=d[cur]+1;
if(v==t)
return 1;
q.push(v);
}
}
}
return 0;
}
int dfs(int u,int limit) {
int cost=0,v,i,flow;
if(u==t)
return limit;
for(i=head[u];i!=-1;i=bian[i].next) {
v=bian[i].v;
if(bian[i].w&&d[v]==d[u]+1) {
flow=dfs(v,Min(limit-cost,bian[i].w));
if(flow>0) {//
bian[i].w-=flow;
bian[i^1].w+=flow;
cost+=flow;
if(limit==cost)//如果已经搜到了满流就跳出
break;
}
else
d[v]=-1;//如果流量等于零,再遇到这个点就进行不下去了
}
}
return cost;
}
int dinic() {
int sum=0;
while(bfs())//建层次图
sum+=dfs(s,inf);//多次dfs搜索s-t增光路求可行流
return sum;
}
int main(){
int m,i,j,k,n;
while(scanf("%d%d",&m,&n)!=EOF) {
yong=0;
memset(head,-1,sizeof(head));
s=1;t=n;
while(m--){
scanf("%d%d%d",&i,&j,&k);
addedge(i,j,k);//建边
addedge(j,i,0);//建反向边
}
printf("%d\n",dinic());
}
return 0;
}
poj 1273最大流dinic算法模板的更多相关文章
- POJ 3469.Dual Core CPU 最大流dinic算法模板
Dual Core CPU Time Limit: 15000MS Memory Limit: 131072K Total Submissions: 24830 Accepted: 10756 ...
- 求最大流dinic算法模板
//最短增广路,Dinic算法 struct Edge { int from,to,cap,flow; };//弧度 void AddEdge(int from,int to,int cap) //增 ...
- 最大流Dinic算法模板(pascal)
program rrr(input,output); const inf=; type pointer=^nodetype; nodetype=record t,c:longint; next,rev ...
- POJ 1273 Drainage Ditches(网络流dinic算法模板)
POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...
- POJ 1815 - Friendship - [拆点最大流求最小点割集][暴力枚举求升序割点] - [Dinic算法模板 - 邻接矩阵型]
妖怪题目,做到现在:2017/8/19 - 1:41…… 不过想想还是值得的,至少邻接矩阵型的Dinic算法模板get√ 题目链接:http://poj.org/problem?id=1815 Tim ...
- HDU1532最大流 Edmonds-Karp,Dinic算法 模板
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- hdu 2435 dinic算法模板+最小割性质
#include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...
- 网络流之最大流Dinic算法模版
/* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...
- POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]
题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...
随机推荐
- bzoj 4003 [JLOI2015]城池攻占 —— 左偏树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4003 其实蛮简单的,首先一个城市只会被其子树中的骑士经过,启发我们 dfs 序用可并堆合并子 ...
- Coursera Algorithms week4 基础标签表 练习测验:Java autoboxing and equals
1. Java autoboxing and equals(). Consider two double values a and b and their corresponding Double v ...
- IP V4 和 IP V6 初识
IP V4 是互联网协议的第四版 地址长度为32位,4字节,用十进制表示 格式为:A.B.C.D 最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展 IP V6 是互联网协议的I ...
- myeclipse配背景色
1:使jsp,html等页面为纯黑色. 2:发现JS的背景颜色还是默认的.而且还是块状的.将它设置背景为黑色的. *效果图: 参考:http://blog.csdn.net/ltqwby/articl ...
- BZOJ 1845 Simpson积分
思路: Simpson积分直接上 限制一下递归深度+精度就好了 (难以理解为什么这么多人写扫描线) //By SiriusRen #include <bits/stdc++.h> usi ...
- mysql数据的操作
一.插入数据记录 1.插入完整数据记录 INSERT INTO table_name VALUES(value1,value2......valuen); 2.插入数据记录的一部分 INSERT IN ...
- cmd bat 相对命令
"%~dp0",在BAT中,是不是“相对路径”的意思 (2013-08-21 12:19:32) 转载▼ 标签: 杂谈 分类: C# 0念 零 ,代表你的批处理本身. d p是FO ...
- 6.10---mybatis中两张表查询数据dao层
- 开发者自建IM服务器必须要解决的几个问题!
有很多朋友的项目需要用到即时通讯,几年前鄙人的项目也是如此,当年没有选择,只能自建了IM服务器,几年下来跨了不少的坑,想想都甚是后怕.总结此文为后来还想自建IM的朋友提个醒,或许能找到更好的解决之路. ...
- CNN-CV识别简史2012-2017:从 AlexNet、ResNet 到 Mask RCNN
原文:计算机视觉识别简史:从 AlexNet.ResNet 到 Mask RCNN 总是找不到原文,标记一下. 一切从这里开始:现代物体识别随着ConvNets的发展而发展,这一切始于2 ...