HDU3549 Flow Problem (网络流入门题)
来源:互联网 发布:windows 2003 64 iso 编辑:程序博客网 时间:2024/05/20 01:11
入门题:
我使用的是ISAP算法,效率还是可以的
学习资料
#include<cstdio>#include<algorithm>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))const int maxn=20006;const int inf=1<<28;const int nv=20;//顶点的数量const int ne=2002;//边的数量struct isap{ int n,size; int head[nv]; int dis[nv],gap[nv],cur[nv],pre[nv]; int maxflow; struct edge{ int v,w,next; edge(){} edge(int _v,int _w,int _next):v(_v),w(_w),next(_next){} }E[ne]; void init(int x){ n=x,size=0; for(int i=0;i<=n;i++)head[i]=-1; } inline void insert(int u,int v,int w){ E[size]=edge(v,w,head[u]); head[u]=size++; E[size]=edge(u,0,head[v]); head[v]=size++; } int maxFlow(int src,int des){ maxflow=0; for(int i=0;i<=n;i++){ dis[i]=gap[i]=0; } for(int i=0;i<=n;i++){ cur[i]=head[i]; } int u=pre[src]=src; int aug=-1; while(dis[src]<n){ loop:for(int &i=cur[u];i!=-1;i=E[i].next){ int v=E[i].v; if(E[i].w&&dis[u]==dis[v]+1){ aug=min(aug,E[i].w); pre[v]=u; u=v; if(v==des){ maxflow+=aug; for(u=pre[u];v!=src;v=u,u=pre[u]){ E[cur[u]].w-=aug; E[cur[u]^1].w+=aug; } aug=inf; } goto loop; } } int mdis=n; for(int i=head[u];i!=-1;i=E[i].next){ int v=E[i].v; if(E[i].w&&mdis>dis[v]){ cur[u]=i; mdis=dis[v]; } } if(--gap[dis[u]]==0)break; gap[dis[u]=mdis+1]++; u=pre[u]; } return maxflow; }}G;int main(){ int cas=1; int T; scanf("%d",&T); while(T--){ int n,m; scanf("%d%d",&n,&m); G.init(n); while(m--){ int u,v,w; scanf("%d%d%d",&u,&v,&w); if(u==v)continue; G.insert(u,v,w); } printf("Case %d: %d\n",cas++,G.maxFlow(1,n)); } return 0;}
0 0
- 网络流入门题hdu3549(Flow Problem)
- HDU3549 Flow Problem (网络流入门题)
- HDU3549 网络流入门题(Dinic)
- 【网络流】hdu3549 Flow Problem
- HDU 3549 Flow Problem【网络流入门题】
- HDU 3549 Flow Problem 网络流入门
- HDU3549(最大流入门模板题)
- HDU 3549 Flow Problem(网络流入门题-最大流的Ford-Fulkerson算法)
- hdu3549(网络流入门题-最大流的sap算法)
- HDU 3549 Flow Problem (网络流入门+模板详解)
- HDU 3549 适合网络流入门(内含sap模板和Dinic模板)Flow Problem
- hdu 1532 Drainage Ditches 和hdu 3549 Flow Problem 网络流入门(EK和dinic)
- hdu3549 Flow Problem(最大流)
- hdu3549 Flow Problem(EKarp||Dinic)
- hdu3549-Flow Problem(最大流&EK)
- Hdu3549 Flow Problem(isap+bfs优化)
- hdu3549—Flow Problem(FF模板)
- hdu3549 Flow Problem (Dinic)
- 字符串 [总结]
- HelloWorld
- nyoj--106--背包问题(贪心,水题)
- HTML5学习笔记之video标签
- MySQL单列索引和组合索引的区别介绍
- HDU3549 Flow Problem (网络流入门题)
- 选修课1. 各种猜数字游戏
- 刘强东:猪飞到天疯狂了十几秒 但摔下死得更快
- CRM-资源文件分类
- android图像缓存问题
- nyoj 1036非洲小孩(区间时间点)
- Codevs 2981 查字典 1
- maven 学习总结(五)——聚合与继承
- git暂存区和工作区详解