POJ1459
来源:互联网 发布:淘宝司法拍卖房产 编辑:程序博客网 时间:2024/06/08 06:34
原题链接
题意简述
原题看了好几遍才看懂…
给出一个
题解
建一个真 · 源点和一个真 · 汇点。真 · 源点向所有原源点连容量等于其上限的边,所有原汇点向真 · 汇点连容量等于其上限的边。跑一遍最大流即可。
Code
//Power Network#include <cstdio>#include <cstring>#include <algorithm>using namespace std;inline char gc(){ static char now[1<<16],*S,*T; if(S==T) {T=(S=now)+fread(now,1,1<<16,stdin); if(S==T) return EOF;} return *S++;}bool dgt(char ch) {return '0'<=ch&&ch<='9';}inline int read(){ int x=0; char ch=gc(); while(ch!=EOF&&!dgt(ch)) ch=gc(); while(dgt(ch)) x=x*10+ch-'0',ch=gc(); return x;}int const N=1e2+10;int n,np,nc,m; int s,t;int cnt,h[N];struct edge{int v,c,nxt;} ed[N*N<<1];void edAdd(int u,int v,int c){ cnt++; ed[cnt].v=v,ed[cnt].c=c; ed[cnt].nxt=h[u],h[u]=cnt; cnt++; ed[cnt].v=u,ed[cnt].c=0; ed[cnt].nxt=h[v],h[v]=cnt;}int dpt[N]; int q[N],op,cl;bool bfs(){ op=cl=0; memset(dpt,0,sizeof dpt); dpt[q[++cl]=s]=1; while(op<cl) { int u=q[++op]; if(u==t) break; for(int i=h[u];i;i=ed[i].nxt) { int v=ed[i].v,c=ed[i].c; if(dpt[v]==0 && c) dpt[q[++cl]=v]=dpt[u]+1; } } return dpt[t]?true:false;}int fill(int u,int in){ if(u==t || in==0) return in; int out=0; for(int i=h[u];i;i=ed[i].nxt) { int v=ed[i].v,c=ed[i].c; if(dpt[v]!=dpt[u]+1 || !c) continue; int flow=fill(v,min(in-out,c)); if(!flow) dpt[v]==0; else out+=flow,ed[i].c-=flow,ed[i^1].c+=flow; } return out;}int main(){ while(true) { n=read(),np=read(),nc=read(); m=read(); if(gc()==EOF) break; s=0,t=n+1; cnt=1; memset(h,0,sizeof h); for(int i=1;i<=m;i++) {int u=read()+1,v=read()+1,c=read(); edAdd(u,v,c);} for(int i=1;i<=np;i++) {int u=read()+1,p=read(); edAdd(0,u,p);} for(int i=1;i<=nc;i++) {int u=read()+1,c=read(); edAdd(u,t,c);} int ans=0; while(bfs()) ans+=fill(s,0x7FFFFFFF); printf("%d\n",ans); } return 0;}
注意
输入格式比较鬼畜
原题的节点是从0开始标号的,我的源点
阅读全文
0 0
- poj1459
- POJ1459
- poj1459
- poj1459
- poj1459
- poj1459
- POJ1459
- poj1459
- POJ1459
- POJ1459
- poj1459
- poj1459 dinic
- 网络流(poj1459)
- poj1459 Power Network
- POJ1459解题报告
- poj1459(网络流)
- poj1459 网络流经典
- poj1459 Power Network
- 阵列信号处理中若干算法的C++实现之基础函数篇
- 使用线程和线程池
- 【Python】线程
- SpringBoot用JdbcTemplates访问Mysql
- 使用POI进行Excel导入时解决的一些问题
- POJ1459
- ’17读经感言集
- 关于Apache ad 下载总结
- 培训第八天,接口与多态
- 434. Number of Segments in a String
- jQuery实现图片转base64及上传
- Java 虚拟机
- lnmp一键安装包链接本地navicat
- web 端口刺探