#include<stdio.h>

#include<string.h>

#define N 300

#define inf 0x7fffffff

#include<queue>

using namespace std;

struct node {

  int u,v,w,next;

}bian[N*4];

int head[N],yong,d[N],s,t;

void addedge(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++;

}

int Min(int a,int b) {

return a>b?b:a;

}

int bfs() {

  int i,cur,v;

  queue<int>q;

  memset(d,0,sizeof(d));

  q.push(s);

  d[s]=1;

  while(!q.empty()) {

    cur=q.front();

    q.pop();

    for(i=head[cur];i!=-1;i=bian[i].next) {

        v=bian[i].v;

        if(bian[i].w&&!d[v]) {

            d[v]=d[cur]+1;

            if(v==t)

                return 1;

            q.push(v);

        }

    }

  }

  return 0;

}

int dfs(int u,int limit) {

   int cost=0,v,i,flow;

   if(u==t)

    return limit;

   for(i=head[u];i!=-1;i=bian[i].next) {

    v=bian[i].v;

    if(bian[i].w&&d[v]==d[u]+1) {

        flow=dfs(v,Min(limit-cost,bian[i].w));

        if(flow>0) {//

            bian[i].w-=flow;

            bian[i^1].w+=flow;

            cost+=flow;

            if(limit==cost)//如果已经搜到了满流就跳出

                break;

        }

        else

            d[v]=-1;//如果流量等于零,再遇到这个点就进行不下去了

    }

   }

   return cost;

}

int dinic() {

int sum=0;

while(bfs())//建层次图

    sum+=dfs(s,inf);//多次dfs搜索s-t增光路求可行流

    return sum;

}

int main(){

     int m,i,j,k,n;

     while(scanf("%d%d",&m,&n)!=EOF) {

        yong=0;

        memset(head,-1,sizeof(head));

        s=1;t=n;

        while(m--){

            scanf("%d%d%d",&i,&j,&k);

            addedge(i,j,k);//建边

            addedge(j,i,0);//建反向边

        }

        printf("%d\n",dinic());

     }

return 0;

}

poj 1273最大流dinic算法模板的更多相关文章

  1. POJ 3469.Dual Core CPU 最大流dinic算法模板

    Dual Core CPU Time Limit: 15000MS   Memory Limit: 131072K Total Submissions: 24830   Accepted: 10756 ...

  2. 求最大流dinic算法模板

    //最短增广路,Dinic算法 struct Edge { int from,to,cap,flow; };//弧度 void AddEdge(int from,int to,int cap) //增 ...

  3. 最大流Dinic算法模板(pascal)

    program rrr(input,output); const inf=; type pointer=^nodetype; nodetype=record t,c:longint; next,rev ...

  4. POJ 1273 Drainage Ditches(网络流dinic算法模板)

    POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...

  5. POJ 1815 - Friendship - [拆点最大流求最小点割集][暴力枚举求升序割点] - [Dinic算法模板 - 邻接矩阵型]

    妖怪题目,做到现在:2017/8/19 - 1:41…… 不过想想还是值得的,至少邻接矩阵型的Dinic算法模板get√ 题目链接:http://poj.org/problem?id=1815 Tim ...

  6. HDU1532最大流 Edmonds-Karp,Dinic算法 模板

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...

  7. hdu 2435 dinic算法模板+最小割性质

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...

  8. 网络流之最大流Dinic算法模版

    /* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...

  9. POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]

    题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...

随机推荐

  1. ubuntu系统快捷键设置

    1.打开'系统设置' 2.点击键盘 3.选择快捷键,查看和修改对应的快捷键.

  2. 03、HelleBaiduMap

    D:\百度地图\百度地图\资料\百度地图与定位SDK\百度地图v3.5.0\BaiduMap_AndroidSDK_v3.5.0_All\BaiduMap_AndroidSDK_v3.5.0_Docs ...

  3. Croppic插件使用介绍-asp.net

    具体的参数使用和基本使用方式请看:http://www.uedsc.com/croppic-api.html 需要说明的几点: 1.支持两种上传方式: (1)先将原图上传至服务器,然后再次将切图信息传 ...

  4. AdminLTE介绍和zTree的简单使用

    一.AdminLTE介绍 1.介绍 ​ AdminLTE是一个开源的后台控制面板和仪表盘 WebApp 模板,是建立在Bootstrap3框架和JQuery之上的开源模板主题工具,它提供了一系列响应的 ...

  5. 8.Layers Editor

    图层编辑 Ventuz5中有两种类型的场景,分别是2D图层和3D图层.3D图层包含Content和Hierarchy,而2D图层只包含Content.默认情况下,图层编辑器显示在Ventuz中的左上角 ...

  6. [Windows Server 2008] 安装Apache+PHP+MySQL

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:Win2008 ...

  7. Python常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...

  8. 最快的 Python Web 框架入门

    速度比较 框架 实现基础 每秒请求数 平均时间 Sanic Python 3.5 + uvloop 30,601 3.23ms Wheezy gunicorn + meinheld 20,244 4. ...

  9. 零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  10. iptables详解(4):iptables匹配条件总结之一

    所属分类:IPtables  Linux基础 在本博客中,从理论到实践,系统的介绍了iptables,如果你想要从头开始了解iptables,可以查看iptables文章列表,直达链接如下 iptab ...