POJ 2135 Farm Tour (最小费用最大流)
2016-04-30 12:51
531 查看
大意:从1点走到n点然后再返回到1点,前提是所有的路程只能够走一次。
思路:因为从原点走到n点然后再走回来需要走源点两次,所以流量为2.因为所有的路都是双向图,即需要建四条边。
思路:因为从原点走到n点然后再走回来需要走源点两次,所以流量为2.因为所有的路都是双向图,即需要建四条边。
#include<iostream> #include<cstdio> #include<cstring> #include<map> #include<queue> #include<algorithm> #define MAX 1000 #define inf 0x3f3f3f3f using namespace std; struct node{ int to,next,w,c; }q[30024*5]; int star,en,head[30024*5],cnt,flow,cost,dis[3024],cur[10024]; bool vis[1010*5]; int f[10024]; void bu(int a,int b,int w,int c){ q[cnt].to=b; q[cnt].w=w; q[cnt].c=c; q[cnt].next=head[a]; head[a]=cnt++; q[cnt].to=a; q[cnt].w=0; q[cnt].c=-c; q[cnt].next=head[b]; head[b]=cnt++; } bool SPFA(){ memset(vis,false,sizeof(vis) ); memset(dis,inf,sizeof(dis) ); dis[star]=0; cur[star]=-1; f[star]=inf; queue<int>qu; qu.push(star); while(!qu.empty()){ int u=qu.front(); qu.pop(); vis[u]=false; for(int i=head[u];~i;i=q[i].next){ int v=q[i].to; if(dis[v]>dis[u]+q[i].c&&q[i].w){ dis[v]=dis[u]+q[i].c; f[v]=min(f[u],q[i].w); cur[v]=i; if(!vis[v]){ vis[v]=true; qu.push(v); } } } } if(dis[en]==inf)return false; flow+=f[en]; cost+=f[en]*dis[en]; //printf("%d\n",flow); for(int i=cur[en];~i;i=cur[q[i^1].to]){ q[i].w-=f[en]; q[i^1].w+=f[en]; } return true; } int main(){ int n,m,i,j,k,a,b,c; while(~scanf("%d%d",&n,&m)){ cnt =0; memset(head,-1,sizeof(head)); for(i = 0;i <m;++ i){ scanf("%d%d%d",&a,&b,&c); bu(a,b,1,c); bu(b,a,1,c); } star = 0,en = n+1; cost = flow = 0; bu(star,1,2,0); bu(n,n+1,2,0); while(SPFA()); printf("%d\n",cost); } return 0; }
相关文章推荐
- Poj2638 网络流+最短路+二分答案
- BZOJ3275 Number (最小割)
- [笔记] 网络流-最大流 POJ-1273\HDU-4240
- 上下界网络流初探
- Edmonds-Karp 最大流 hdu 1532 Drained Ditches
- 网络流_poj1273
- POJ 1273 Drainage Ditches 最大流 dinic
- POJ1273-Drainage Ditches
- 【网络流】复杂的大门
- ACM/ICPC World Finals 2013 C Surely You Congest
- 北京集训队 2016 Day4 alarm
- 网络流算法整理
- [BZOJ1797][AHOI2009][最大流][强连通分量]Mincut最小割
- [BZOJ2324][ZJOI2011][最小费用最大流]营救皮卡丘
- [BZOJ1834][ZJOI2010][最大流][最小费用最大流]网络扩容
- Topcoder SRM642 TaroCutting
- POJ2391解题报告
- uva 11248
- 【学习】网络流
- 【网络流之最小割模型】poj3469 BZOJ3144 UVA1212