Poj 1273 题解
2015-01-10 13:56
387 查看
模板题,dinic网络流,直接上代码。
Just prepare for the exam。
记得数组开大,多组数据。
Code:
Just prepare for the exam。
记得数组开大,多组数据。
Code:
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; struct node { int x,y,c,next,other; }a[6110000]; int len,first[1110000]; int list[1110000],dep[1110000]; int head,tail,n,m; void ins(int x,int y,int c) { int k1,k2; len++; k1=len; a[len].x=x; a[len].y=y; a[len].c=c; a[len].next=first[x]; first[x]=len; len++; k2=len; a[len].x=y; a[len].y=x; a[len].c=0; a[len].next=first[y]; first[y]=len; a[k1].other=k2; a[k2].other=k1; } void Input() { int x,y,c; memset(first,0,sizeof(first)); len=0; for(int i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&c); ins(x,y,c); } } int ans; bool bfs() { memset(dep,0,sizeof(dep)); dep[1]=1; head=1; tail=1; list[1]=1; while(head<=tail) { int x=list[head]; for(int k=first[x];k;k=a[k].next) { int y=a[k].y; if(a[k].c&&dep[y]==0) { dep[y]=dep[x]+1; list[++tail]=y; } } head++; } return dep >0; } int dfs(int x,int flow) { int delta=0; if(x==n) return flow; for(int k=first[x];k;k=a[k].next) { int y=a[k].y; if(dep[y]==dep[x]+1&&a[k].c&&delta<flow) { int minf=dfs(y,min(flow-delta,a[k].c)); a[k].c-=minf; a[a[k].other].c+=minf; delta+=minf; } } if(delta==0) dep[x]=0; return delta; } void Solve() { int delta; ans=0; while(bfs()) { while(delta=dfs(1,0x3fffffff)) ans+=delta; } } void Output() { printf("%d\n",ans); } int main() { freopen("a.in","r",stdin); freopen("a.out","w",stdout); while(scanf("%d%d",&m,&n)!=EOF) { Input(); Solve(); Output(); } }
相关文章推荐
- POJ 1273 Drainage Ditches题解——S.B.S.
- POJ 1273 Drainage Ditches 题解与分析<网络流DINIC>
- POJ-1273(Dinic)题解 (漂亮版代码)
- POJ 2823 Sliding Window 单调队列题解
- 【POJ】1273 Drainage Ditches 网络最大流
- POJ 1273 Drainage Ditches
- poj1273(网络流最大流dinic)
- 【POJ 3691】【hdu 2457】DNA repair 中文题意&题解&代码(C++)
- poj,1273Drainage Ditches
- POJ 1273(ISAP+邻接表)
- POJ 1458题解
- 【题解】扩展欧几里德 POJ1061 青蛙的约会
- POJ 1273 Drainage Ditches -dinic
- poj 1273Drainage Ditches 最大流
- poj 2187 Beauty Contest 题解(凸包模板+旋转卡壳)
- POJ-1273 Drainage Ditches(最大流)
- 【最大流(dinic)】poj 1273 Drainage Ditches
- poj1273最大流初破
- POJ 2431 题解
- poj 1273 Drainage Ditches