HDU 2282 Chocolate (最小费用最大流)
来源:互联网 发布:linux架设暗黑2 编辑:程序博客网 时间:2024/06/05 11:38
HDU 2282 Chocolate (最小费用最大流)
#include <iostream>#include <cstdio>#include <queue>#include <cstdlib>using namespace std;const int maxn=30000;const int inf=200000000;struct edge{int u,v,next,f,c;edge(int u0=0,int v0=0,int f0=0,int c0=0,int next0=0){u=u0,v=v0,f=f0,c=c0,next=next0;}}e[maxn*10];int head[maxn*2],visited[maxn*2],path[maxn*2],dist[maxn*2];int cnt,from,to,marked,maxflow,offflow,n,r,m;void initial(){to=2*n+1;cnt=0;marked=1;maxflow=0;from=0;for(int i=0;i<=to;i++){head[i]=-1;visited[i]=0;}}void adde(int u,int v,int f,int c){e[cnt].u=u,e[cnt].v=v,e[cnt].f=f,e[cnt].c=c,e[cnt].next=head[u],head[u]=cnt++;e[cnt].u=v,e[cnt].v=u,e[cnt].f=0,e[cnt].c=-c,e[cnt].next=head[v],head[v]=cnt++;}void input(){int u0,c0;for(int i=1;i<=n;i++){adde(0,i,inf,0);adde(i+n,to,1,0);}for(int i=1;i<=n;i++){scanf("%d",&c0);adde(i,i+n,c0,0);adde(i+n,i-1<1?n+n:i-1+n,inf,1);adde(i+n,i+1>n?1+n:i+1+n,inf,1);}}void bfs(){ for(int i=0;i<=to;i++){ dist[i]=inf; path[i]=-1; } dist[0]=0; queue <int> q; q.push(0); marked++; visited[0]=marked; while(!q.empty()){ int s=q.front(); q.pop(); for(int i=head[s];i!=-1;i=e[i].next){ int d=e[i].v; if(e[i].f>0 && dist[s]+e[i].c<dist[d]){ dist[d]=dist[s]+e[i].c; path[d]=i; if(visited[d]!=marked){ visited[d]=marked; q.push(d); } } } visited[s]=-1; }}void computing(){while(true){ bfs(); /*cout<<to; for(int i=to;i!=from;i=e[path[i]].u){ cout<<"->"<<e[path[i]].u;}cout<<endl;*/ if(dist[to]>=inf) break;maxflow+=dist[to];for(int i=to;i!=from;i=e[path[i]].u){ e[path[i]].f-=1; e[path[i]^1].f+=1;}} printf("%d\n",maxflow);}int main(){while(scanf("%d",&n)!=EOF){initial();input();computing();}return 0;}
- HDU 2282 Chocolate (最小费用最大流)
- hdoj 2282 Chocolate 【最小费用最大流】
- SPOJ 371 - Boxes & HDU 2282 - Chocolate 构图最小费用最大流
- hdoj--2282---Chocolate(最小费用流)
- hdu 4067(最小费用最大流)
- hdoj--2282--Chocolate(最小费用)
- HDU 4494 Teamwork(最大流或最小费用流)
- hdu 3667(拆边+最小费用最大流)
- hdu 1533 going home (最小费用最大流)
- HDU 1853 Cyclic Tour(最小费用最大流)
- HDU 3667Transportation(最小费用最大流)拆边,经典
- HDU -- 3667 Transportation(最小费用最大流 )
- HDU 4862 Jump(最小费用最大流-mcmf)
- (最小费用最大流模板)HDU 3488
- HDU 4411 Arrest 最小费用最大流(题意+建图)
- HDU 3667 Transportation (最小费用最大流)
- hdu 5619 Jam's store(最小费用最大流)
- HDU 4744 Starloop System(ZKW最小费用最大流)
- 用TKPROF工具查看trace文件,了解sql重用提高软解析,提高性能
- ACE中UDP通信
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- HDU 1892 See you~(经典二维树状数组)
- Backbone.js的技巧和模式
- HDU 2282 Chocolate (最小费用最大流)
- 多线程9:生产者消费者问题
- poj 2485 Highways 最小生成树
- Deep Learning论文笔记之(五)CNN卷积神经网络代码理解
- 黑莓OS10开发(4) 在QML中添加对象(上)
- hdu 4696 Answers/杭电2013年多校第十场 循环
- C语言标准库 - limits.h & float.h 固定数值常量
- hdu-1280-前m大的数
- 第一周工作内容总结