sgu 194 无源汇有上下界的最大流(最大流模板dinic加优化)
来源:互联网 发布:易语言时时彩做号源码 编辑:程序博客网 时间:2024/06/05 09:22
模板类型的题具体参考国家集训队论文:http://wenku.baidu.com/view/0f3b691c59eef8c75fbfb35c.html
参考博客:http://blog.csdn.net/qq172108805/article/details/7783010
#include<stdio.h>#include<string.h>#include<queue>using namespace std;#define N 300#define inf 0x3fffffffstruct node { int u,v,w,next;}bian[N*N*3];int fee[N],bb[N*N*2];int head[N],yong,dis[N],work[N];void init(){yong=0;memset(head,-1,sizeof(head));}void addbian(int u,int v,int w) {bian[yong].u=u;bian[yong].v=v;bian[yong].w=w;bian[yong].next=head[u];head[u]=yong++;}void add(int u,int v,int w) {addbian(u,v,w);addbian(v,u,0);}int min(int a,int b){return a<b?a:b;}int bfs(int s,int t){ memset(dis,-1,sizeof(dis)); queue<int>q; q.push(s); dis[s]=0; while(!q.empty()) { int u=q.front(); q.pop(); for(int i=head[u];i!=-1;i=bian[i].next) { int v=bian[i].v; if(bian[i].w&&dis[v]==-1) { dis[v]=dis[u]+1; q.push(v); if(v==t) return 1; } } } return 0;}int dfs(int s,int limit,int t){ if(s==t)return limit; for(int &i=work[s];i!=-1;i=bian[i].next) { int v=bian[i].v; if(bian[i].w&&dis[v]==dis[s]+1) { int tt=dfs(v,min(limit,bian[i].w),t); if(tt) { bian[i].w-=tt; bian[i^1].w+=tt; return tt; } } } return 0;}int dinic(int s,int t){ int ans=0; while(bfs(s,t)) { memcpy(work,head,sizeof(head)); while(int tt=dfs(s,inf,t)) ans+=tt; } return ans;}int main(){ int n,m,i,a,b,c,d,suma,f,s,t,w[N]; while(scanf("%d%d",&n,&m)!=EOF) { init(); s=0;t=n+1; suma=0; memset(w,0,sizeof(w)); for(i=0;i<m;i++) { scanf("%d%d%d%d",&a,&b,&c,&d); add(a,b,d-c); w[b]+=c; w[a]-=c; bb[i]=d; } for(i=1;i<=n;i++) { if(w[i]>0) { suma+=w[i]; add(s,i,w[i]); } if(w[i]<0)add(i,t,-w[i]); } f=dinic(s,t); if(f==suma) { printf("YES\n"); for(i=0;i<m;i++) printf("%d\n",bb[i]-bian[i*2].w); } else printf("NO\n"); }return 0;}
0 0
- sgu 194 无源汇有上下界的最大流(最大流模板dinic加优化)
- SGU 194 Reactor Cooling(无源汇有上下界最大流)
- sgu 194 Reactor Cooling 无源汇有上下界最大流
- sgu-194-Reactor Cooling(无源汇有上下界最大流)
- SGU 194. Reactor Cooling (无源汇有上下界最大流
- SGU - 194 Reactor Cooling(无源无汇有上下界最大流)
- 【无源汇上下界最大流】SGU 194 Reactor Cooling
- 无源汇有上下界的最大流
- SGU 194. Reactor Cooling【无源汇上下界最大流】
- hdu 4940 无源汇有上下界最大流
- [伪·ZOJ2314] 无源汇有上下界的最大流
- SGU 194 无源汇最大流
- SGU 194 无源无汇上下界网络流
- SGU 194 无源汇的上下界可行流
- HDU 4940 无源无汇上下界最大流
- sgu194 无源汇上下界的最大流
- 最大流模板(Dinic)
- 无源汇最大流 SGU 194 Reactor Cooling
- windows2008服务器连接Oracle慢的问题--之TCP/IP协议自动调谐功能
- 【算法学习笔记】07.数据结构基础 链表 初步练习
- mysqlfilter
- hdu 2078 排序求最值
- windows环境下emacs对jpg、gif、png等图片格式的支持文件
- sgu 194 无源汇有上下界的最大流(最大流模板dinic加优化)
- AppStore载失败 使用已购页面再试一次 诡异解决方法
- jquery的写法收集
- java json不生成null或者空字符串属性
- hdoj 2051 Bitset(数的进制转换问题)
- xmaneger连接linux报错(The X11 forwarding request was rejected! )
- 《算法之道》精华 难解问题部分
- Silverlight Textbox,Password去除鼠标滑过边框
- mysqlfilter-manual