NYOJ323_Drainage Ditches+最大流
2017-04-11 13:59
274 查看
原题地址:点击打开链接
#include<stdio.h>
#include<string.h>
#include<vector>
#include<iostream>
using namespace std;
#define MAX 1<<31-1
int min(int x,int y)
{
return x<y?x:y;
}
struct Edge
{
int to;
int cap;
int rev;
};
vector<Edge>g[210];
int used[210],n,m;
void add_edge(int from,int to,int cap) //加边
{
Edge e1={to,cap,g[to].size()};
g[from].push_back(e1);
Edge e2={from,0,g[from].size()-1};
g[to].push_back(e2);
}
int dfs(int u,int f)
{
int i,v;
if(u==m)
return f;
for(i=0;i<g[u].size();i++)
{
Edge &e=g[u][i];
if(e.cap>0&&used[e.to]!=1)
{
used[e.to]=1;
int d=dfs(e.to,min(e.cap,f));
if(d>0)
{
e.cap-=d;
g[e.to][e.rev].cap+=d;
return d;
}
}
}
return 0;
}
int max_flow()
{
int res=0;
while(1)
{
memset(used,0,sizeof(used));
used[1]=1;
int d=dfs(1,MAX); //找寻增广路
if(d<=0)
break;
res+=d;
}
return res;
}
int main()
{
int i,u,v,c;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
g[i].clear();
for(i=0;i<n;i++)
{
scanf("%d%d%d",&u,&v,&c);
add_edge(u,v,c);
}
int res=max_flow();
printf("%d\n",res);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<vector>
#include<iostream>
using namespace std;
#define MAX 1<<31-1
int min(int x,int y)
{
return x<y?x:y;
}
struct Edge
{
int to;
int cap;
int rev;
};
vector<Edge>g[210];
int used[210],n,m;
void add_edge(int from,int to,int cap) //加边
{
Edge e1={to,cap,g[to].size()};
g[from].push_back(e1);
Edge e2={from,0,g[from].size()-1};
g[to].push_back(e2);
}
int dfs(int u,int f)
{
int i,v;
if(u==m)
return f;
for(i=0;i<g[u].size();i++)
{
Edge &e=g[u][i];
if(e.cap>0&&used[e.to]!=1)
{
used[e.to]=1;
int d=dfs(e.to,min(e.cap,f));
if(d>0)
{
e.cap-=d;
g[e.to][e.rev].cap+=d;
return d;
}
}
}
return 0;
}
int max_flow()
{
int res=0;
while(1)
{
memset(used,0,sizeof(used));
used[1]=1;
int d=dfs(1,MAX); //找寻增广路
if(d<=0)
break;
res+=d;
}
return res;
}
int main()
{
int i,u,v,c;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
g[i].clear();
for(i=0;i<n;i++)
{
scanf("%d%d%d",&u,&v,&c);
add_edge(u,v,c);
}
int res=max_flow();
printf("%d\n",res);
}
return 0;
}
相关文章推荐
- Drainage Ditches---hdu1532(最大流)
- POJ 1273 (基础最大流) Drainage Ditches
- poj 1273 (nyoj 323) Drainage Ditches : 最大流
- 【网络流】最大流:Drainage Ditches【EK模板】
- poj 1273 (nyoj 323) Drainage Ditches : 最大流
- Drainage Ditches USACO 4.2 (最大流,BFS)
- POJ 1273 Drainage Ditches(网络流-最大流)
- Drainage Ditches---hdu1532(最大流, 模板)
- Drainage Ditches poj 1273 最大流
- [POJ 1273] Drainage Ditches & 最大流Dinic模板
- POJ 1273 Drainage Ditches dinic 最大流
- poj1273 Drainage Ditches Dinic最大流
- NYOJ323 Drainage Ditches 最大流
- NYOJ 323 Drainage Ditches 最大流 Dinic 算法模板
- nyoj--1057--寻找最大数(三)(贪心)
- nyoj448寻找最大数
- NYoj 239 :月老的难题(二分图最大匹配,匈牙利算法)
- NYOJ37最大回文字符串(LCS)
- NYOJ 寻找最大数(三)
- nyoj448 寻找最大数