【wikioi1993】 草地排水
来源:互联网 发布:python Text insert 编辑:程序博客网 时间:2024/04/26 14:46
#include<iostream>#include<cstdio>#include<cstring>#define INF 0x7fffffffusing namespace std;struct data{int to,next,v;}e[402];int n,m,ne=1,ans;int h[201],q[201],head[201];void insert(int u,int v,int w){ ne++; e[ne].to=v;e[ne].v=w; e[ne].next=head[u]; head[u]=ne; ne++; e[ne].to=u; e[ne].next=head[v]; head[v]=ne; }bool bfs(){ memset(h,-1,sizeof(h)); int t=0,w=1,i,now; q[0]=1;h[1]=0; while(t<w) { now=q[t++];i=head[now]; while(i) { if(e[i].v&&h[e[i].to]==-1) {h[e[i].to]=h[now]+1;q[w++]=e[i].to;} i=e[i].next; } } if(h[m]==-1)return 0; return 1; }int dfs(int x,int f){ if(x==m)return f; int i=head[x],w,used=0; while(i) { if(e[i].v&&h[e[i].to]==h[x]+1) { w=f-used; w=dfs(e[i].to,min(e[i].v,w)); used+=w; e[i].v-=w; e[i|1].v+=w; if(used==f)return f; } i=e[i].next; } if(!used)h[x]=-1; return used;}void dinic(){while(bfs())ans+=dfs(1,INF);}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { int u,v,w; scanf("%d%d%d",&u,&v,&w); insert(u,v,w); } dinic(); printf("%d",ans); return 0;}
0 0
- 【wikioi1993】草地排水
- 【wikioi1993】 草地排水
- 草地排水
- 【Drainage Ditches 草地排水】
- codevs1993 草地排水
- USACO草地排水
- code vs 草地排水
- [codevs 1993]草地排水
- Codevs 1993 草地排水
- codevs 1993草地排水
- Codevs1993草地排水
- 问题 A: 草地排水
- 【CODEVS1993】【网络流】草地排水
- USACO 草地排水 网络流
- 【codevs1993】草地排水(isap)
- [POJ1273]草地排水 dinic模板
- 草地排水_codevs1993_网络流
- 网络流(草地排水)
- [BetterExplained]为什么你应该(从现在开始就)写博客(转载)
- 黑马程序员——数据归属地的实现
- 【vijos1659】 河蟹王国
- 屏蔽窗体右上角关闭按钮
- 宏定义和预编译 面试题总结
- 【wikioi1993】 草地排水
- 利用递归方法求一个数组的最大值
- 从Android Bootanimation理解SurfaceFlinger的客户端建立
- JAVA中toString方法的作用
- 寻址存储器
- 三和先生原稿 正易
- 【bzoj1001】 [BeiJing2006]狼抓兔子
- XMPPFramework开发基础
- 线性代数(三十三) : 凯莱-哈密顿定理