网络流模板 POJ 1273 Drainage Ditches
来源:互联网 发布:linux 查看进程命令行 编辑:程序博客网 时间:2024/06/06 00:30
邻接表的ISAP:
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#include <stack>#include <map>#include <limits.h>using namespace std;const int inf=1e8-1;const int N=1e5+5;int n,m;struct node{ int u,v; int flow;} e[N];int first[1000];int next[N];int k,nn;int isap(int s,int t){ int num[1000],d[1000],cure[1000],pre[1000]; int cur,ans=0,u,tmp,neck; memset(d,0,sizeof(d)); memset(num,0,sizeof(num)); memset(pre,-1,sizeof(pre)); for(int i=0; i<=nn; i++) cure[i]=first[i]; num[0]=nn+1; u=s; while(d[t]<nn+1) { if(u==t) { cur=inf; for(int i=s; i!=t; i=e[cure[i]].v) if(cur>e[cure[i]].flow) { neck=i; cur=e[cure[i]].flow; } for(int i=s; i!=t; i=e[cure[i]].v) { tmp=cure[i]; e[tmp].flow-=cur; e[tmp^1].flow+=cur; } ans+=cur; u=neck; } int i; for(i=cure[u]; i!=-1; i=next[i]) if(e[i].flow&&d[u]==d[e[i].v]+1) break; if(i!=-1) { cure[u]=i; pre[e[i].v]=u; u=e[i].v; } else { if(0==--num[d[u]]) break; cure[u]=first[u]; for(tmp=nn+1,i=first[u]; i!=-1; i=next[i]) if(e[i].flow) tmp=min(tmp,d[e[i].v]); d[u]=tmp+1; ++num[d[u]]; if(u!=s) u=pre[u]; } } return ans;}inline void add(int u,int v,int w){ // printf("--%d %d %d\n",u,v,w); e[k].u=u; e[k].v=v; e[k].flow=w; next[k]=first[u]; first[u]=k++; e[k].u=v; e[k].v=u; e[k].flow=0; next[k]=first[v]; first[v]=k++;}int main(){ while(~scanf("%d%d",&n,&m)) { memset(first,-1,sizeof(first)); memset(next,-1,sizeof(next)); k=0; int a,b,c; for(int i=1; i<=n; i++) { scanf("%d%d%d",&a,&b,&c); add(a,b,c); } nn=m; printf("%d\n",isap(1,nn)); }}
0 0
- 网络流模板 POJ 1273 Drainage Ditches
- POJ 1273Drainage Ditches --网络流最大流模板题
- POJ 1273 Drainage Ditches 网络流 模板题
- POJ 1273:Drainage Ditches 网络流模板题
- POJ 1273 Drainage Ditches(最大流模板)
- poj 1273 Drainage Ditches 网络最大流
- poj 1273 Drainage Ditches--网络流
- 【网络流】poj 1273 Drainage Ditches
- 网络流poj(1273)Drainage Ditches
- POJ 1273 Drainage Ditches 【网络流】
- POJ 1273 Drainage Ditches 网络流模版
- POJ 1273 Drainage Ditches (网络最大流)
- POJ 1273 - Drainage Ditches (网络流)
- POJ 1273 Drainage Ditches 网络流基础
- 【网络流】 POJ 1273 Drainage Ditches
- poj 1273 Drainage Ditches 经典网络流
- POJ 1273 Drainage Ditches 网络流算法 .
- POJ 1273 Drainage Ditches (网络流)
- Android Framework中Intent中的传输处理
- POJ 2728 Desert King 最优比例生成树
- Android高效加载大图、多图解决方案,有效避免程序OOM
- linxu下CUDA静态库-下
- 一台nginx服务器多域名配置
- 网络流模板 POJ 1273 Drainage Ditches
- Jedis 连接池JedisPool 解决connection timeout问题
- 第13周项目3成绩函数版
- x264参数中文详解(X264 Settings)
- Magento开发文档(三):Magento控制器
- Linux串口编程详解
- 手机js html 图片放大缩小
- 嵌入式开发学习笔记(2)从单片机开始我的长线学习计划
- CXF 动态客户端--复杂对象