poj 1273 Drainage Ditches--最大流--Dinic
来源:互联网 发布:java的所有数据类型 编辑:程序博客网 时间:2024/05/21 14:00
/*之前用EK写过这题,现在学dinic,又写了这个题*/#include<stdio.h>#include<string.h>#include<queue>using namespace std;int map[205][205],lvl[205];int n,m,ret;int bfs()//分层{int u,i;memset(lvl,0,sizeof(lvl));queue<int>q;q.push(1);lvl[1]=1;while(!q.empty()){u=q.front();q.pop();for(i=1;i<=m;i++){if(!lvl[i]&&map[u][i]>0){lvl[i]=lvl[u]+1;q.push(i);}}}return lvl[m]!=0;}int min(int a,int b){return a<b?a:b;}int dfs(int u,int ff)//递归求增广路径{int i,z;int tt=ff;if(u==m) return ff;for(i=1;i<=m&&tt;i++){if(lvl[i]==lvl[u]+1&&map[u][i]>0){z=dfs(i,min(tt,map[u][i]));map[u][i]-=z;map[i][u]+=z;tt-=z;}}return ff-tt;}int main(){int i,a,b,c;while(scanf("%d %d",&n,&m)!=EOF){ret=0;memset(map,0,sizeof(map));for(i=1;i<=n;i++){scanf("%d%d%d",&a,&b,&c);map[a][b]+=c;}while(bfs())ret+=dfs(1,0x7fffffff);//有的人把这写在了while循环里边,不知道为什么,好像在回溯的时候就会找完增广路径吧?谁知到,给回复个 printf("%d\n",ret);}return 0;}
- poj 1273 Drainage Ditches--最大流--Dinic
- poj 1273 Drainage Ditches (最大流Dinic)
- POJ 1273 Drainage Ditches 最大流 dinic
- POJ-1273 Drainage Ditches 最大流Dinic
- poj 1273 Drainage Ditches【最大流 dinic】
- poj 1273 Drainage Ditches(最大流 dinic模版)
- 【最大流(dinic)】poj 1273 Drainage Ditches
- POJ 1273~Drainage Ditches(网络最大流ek,dinic)
- POJ 1273 --Drainage Ditches【最大流模板 && dinic】
- POJ 1273 && HDU 1532 Drainage Ditches(最大流-Dinic)
- 【poj 1273】Drainage Ditches 最大流dinic模板
- POj 1273 Drainage Ditches (最大流 Dinic + ISAP 模板)
- poj 1273 hdu 1532 Drainage Ditches 最大流dinic 算法
- POJ 1273 Drainage Ditches -dinic
- poj 1273 Drainage Ditches 【最大流入门 dinic算法】
- POJ 1273 Drainage Ditches—网络流,最大流模板题,Dinic算法
- POJ--1273--Drainage Ditches【Dinic模板】【isap模板】网络最大流
- poj 1273 Drainage Ditches(最大流E-K +dinic 模板)
- 第十七天:IO流
- 第十八天:IO流
- 第十九天:IO流
- ASP.NET编程之事件Events
- 查看TCP keepalive参数
- poj 1273 Drainage Ditches--最大流--Dinic
- 第二十天:IO流
- C# FileSystemWatcher 在监控文件夹和文件时的用法
- IOS NSString
- 第二十一天:网络编程
- js运算符instanceof的工作原理
- C# WinForm多线程
- 软件架构对程序设计的影响
- gallery