http://poj.org/problem?id=1273

Dinic算法

这是一道最大流的经典题

最大流尽量应该用边表,优于邻接矩阵(所以我写了邻接矩阵版的之后又写了个边表)

用了新学的Dinic算法

在每次找增广路之前先跑一遍bfs,把所有点的深度标记,按bfs记下的顺序找增广路,这条增广路上最小的边容量就是这条增广路的最大费用

跑出一条增广路之后,就开始更新现在的边剩余的容量,并建立反向边。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,m,map[][],ans,pre[];
void Flow(int s,int t){
while(){
queue<int>q;
q.push();
memset(pre,,sizeof(pre));
while(!q.empty()){
int point=q.front();
q.pop();if(point==t)break;
for(int i=;i<=n;i++){
if(map[point][i]&&!pre[i])pre[i]=point,q.push(i);
}
}if(pre[t]==)break;
int so=0x7fffffff;
for(int i=t;i!=s;i=pre[i]){
so=min(so,map[pre[i]][i]);
}ans+=so;
for(int i=t;i!=s;i=pre[i]){
map[i][pre[i]]+=so;
map[pre[i]][i]-=so;
}
}
}
int main(){
while(scanf("%d%d",&m,&n)!=EOF){
int f,t,v;
memset(map,,sizeof(map));
for(int i=;i<=m;i++){
scanf("%d%d%d",&f,&t,&v);
map[f][t]+=v;
}
ans=;
Flow(,n);
printf("%d\n",ans);
}
}

poj1273 Drainage Ditches (最大流模板)的更多相关文章

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

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

  2. poj-1273 Drainage Ditches(最大流基础题)

    题目链接: Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 67475   Accepted ...

  3. POJ-1273 Drainage Ditches 最大流Dinic

    Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 65146 Accepted: 25112 De ...

  4. POJ1273:Drainage Ditches(最大流入门 EK,dinic算法)

    http://poj.org/problem?id=1273 Description Every time it rains on Farmer John's fields, a pond forms ...

  5. poj1273 Drainage Ditches (最大流板子

    网络流一直没学,来学一波网络流. https://vjudge.net/problem/POJ-1273 题意:给定点数,边数,源点,汇点,每条边容量,求最大流. 解法:EK或dinic. EK:每次 ...

  6. [poj1273]Drainage Ditches(最大流)

    解题关键:最大流裸题 #include<cstdio> #include<cstring> #include<algorithm> #include<cstd ...

  7. POJ 1273 Drainage Ditches | 最大流模板

    #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #defi ...

  8. poj1273 Drainage Ditches Dinic最大流

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 76000   Accepted: 2953 ...

  9. Poj 1273 Drainage Ditches(最大流 Edmonds-Karp )

    题目链接:poj1273 Drainage Ditches 呜呜,今天自学网络流,看了EK算法,学的晕晕的,留个简单模板题来作纪念... #include<cstdio> #include ...

  10. 2018.07.06 POJ1273 Drainage Ditches(最大流)

    Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer J ...

随机推荐

  1. wifi androd 整体框架

    1. http://blog.csdn.net/myarrow/article/details/8129607/ 2.  http://blog.csdn.net/liuhaomatou/articl ...

  2. python3用pdfminer3k在线读取pdf文件

    import importlib import sys import random from urllib.request import urlopen from urllib.request imp ...

  3. ios 7 Autolayout bug

    ios 7 Autolayout bug 错误类型:NSInternalInconsistencyException(SIGABRT) 详情:Auto Layout still required af ...

  4. 开始使用Python

    1. 开始使用Python 1.1 print使用str()函数显示对象,而交互式解释器调用repr()函数来显示对象. 1.2 在解释器中_表示最后一个表达式的值. 1.3 >>用来重定 ...

  5. Shell 特殊位置参数的变量

    $0 -- 获取当前执行shell脚本的 文件名 $n -- 获取当前执行shell脚本的 第n个参数 $# -- 获取当前执行shell脚本的 带的参数个数 $? -- 获取执行上一个指令的执行状态 ...

  6. CI公用模型

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * SEO管理系统 -- 公用模型 ...

  7. 英特尔® Software Guard Extensions 教程系列:第一部分,英特尔® SGX 基础

    英特尔® Software Guard Extensions 教程系列:第一部分,英特尔® SGX 基础 from:https://software.intel.com/zh-cn/articles/ ...

  8. PHP中调用接口

    引用:http://zhidao.baidu.com/question/454935450.html&__bd_tkn__=67bd5d3a742a8b244e09a86fb8b824aa95 ...

  9. poj-1986 Distance Queries(lca+ST+dfs)

    题目链接: Distance Queries Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 11531   Accepted ...

  10. CF785CAnton and Permutation(分块 动态逆序对)

    Anton likes permutations, especially he likes to permute their elements. Note that a permutation of  ...