POJ 3469 Dinic (二元关系)
来源:互联网 发布:淘宝卖家电话采集 编辑:程序博客网 时间:2024/06/05 17:52
题意:
思路:
//By SiriusRen#include <queue>#include <cstdio>#include <cstring>using namespace std;#define mem(x,y) memset(x,y,sizeof(x))const int N=20005,M=880005;int first[N],vis[N],next[M],v[M],w[M],tot,xx,yy,zz,n,m,T,ans;void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}void add(int x,int y,int z){Add(x,y,z),Add(y,x,0);}bool tell(){ queue<int>q;q.push(0); memset(vis,-1,sizeof(vis)),vis[0]=0; while(!q.empty()){ int t=q.front();q.pop(); for(int i=first[t];~i;i=next[i])if(!~vis[v[i]]&&w[i]) vis[v[i]]=vis[t]+1,q.push(v[i]); }return ~vis[T];}int zeng(int x,int y){ if(x==T)return y; int r=0; for(int i=first[x];~i&&y>r;i=next[i]) if(vis[v[i]]==vis[x]+1&&w[i]){ int t=zeng(v[i],min(y-r,w[i])); w[i]-=t,w[i^1]+=t,r+=t; } if(!r)vis[x]=-1; return r;}int main(){ mem(first,-1),scanf("%d%d",&n,&m),T=n+1; for(int i=1;i<=n;i++)scanf("%d%d",&xx,&yy),add(0,i,xx),add(i,T,yy); for(int i=1;i<=m;i++)scanf("%d%d%d",&xx,&yy,&zz),add(xx,yy,zz),add(yy,xx,zz); while(tell())while(xx=zeng(0,0x3f3f3f3f))ans+=xx; printf("%d\n",ans);}
0 0
- POJ 3469 Dinic (二元关系)
- 二元关系(续)
- 二元关系
- 二元关系
- 二元关系
- POJ-1273(Dinic)题解
- POJ 3469 第一次AC总结(Dinic+多路增广)
- poj 3469 最大流dinic(双核CPU)
- POJ 3469 Dual Core CPU(最小割-Dinic)
- poj 3469 Dual Core CPU(dinic算法)
- poj 3469 dinic网络流模板
- poj 1459 Power Network (dinic)
- POJ 1273 Drainage Ditches (dinic模板)
- poj 1459 最大流(Dinic)
- POJ - 3281 Dining (ISAP EK Dinic)
- POJ 3281 Dining(最大流-Dinic)
- POJ 1149 PIGS(最大流-Dinic)
- POJ 1273 Drainage Ditches(dinic模板)
- UVa10340 - All in All
- Genymotion的安装与eclipse配置教程
- Titan Graph DataBase 研究 (二)----Titan Server 发布
- day11-API
- 寄存器(内存访问二)
- POJ 3469 Dinic (二元关系)
- json的初始化赋值格式
- PLSQL Procedure 实例1
- LeetCode 449. Serialize and Deserialize BST
- UVa1587 - Box
- app2sd使用教程
- (Linux)启动管理
- Docker系列一之基础快速入门企业实战
- UVa 1588 - Kickdown(BUG)