洛谷 3376

 #include<cstdio>
#include<algorithm>
#include<cstring>
#define N 10010
#define rg register
using namespace std;
int n,m,S,T,tot,ans,last[N],d[N],q[N],cur[N];
struct edge{
int to,pre,f;
}e[];
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
bool bfs(){
memset(d,-,sizeof(d));
d[S]=;
int front=,rear=; q[front]=S;
while(front<rear){
int now=q[front++];
for(rg int i=last[now],to;i;i=e[i].pre)
if(d[to=e[i].to]==-&&e[i].f) d[to]=d[now]+,q[rear++]=to;
}
return d[T]>=;
}
int dfs(int x,int a){
if(x==T||a==) return a;
int flow=,f;
for(rg int &i=cur[x],to;i;i=e[i].pre)
if(d[to=e[i].to]==d[x]+&&e[i].f&&(f=dfs(to,min(a,e[i].f)))){
e[i].f-=f; e[i^].f+=f; flow+=f; a-=f;
if(!a) break;
}
return flow;
}
int dinic(){
int ans=;
while(bfs()){
for(rg int i=;i<=n;i++) cur[i]=last[i];
ans+=dfs(S,2e9);
}
return ans;
}
int main(){
n=read(); m=read(); S=read(); T=read(); tot=;
for(rg int i=;i<=m;i++){
int u=read(),v=read();
e[++tot]=(edge){v,last[u],read()}; last[u]=tot;
e[++tot]=(edge){u,last[v],}; last[v]=tot;
}
printf("%d\n",dinic());
return ;
}

【模板】网络流-最大流 Dinic的更多相关文章

  1. [讲解]网络流最大流dinic算法

    网络流最大流算法dinic ps:本文章不适合萌新,我写这个主要是为了复习一些细节,概念介绍比较模糊,建议多刷题去理解 例题:codevs草地排水,方格取数 [抒情一下] 虽然老师说这个多半不考,但是 ...

  2. 网络流--最大流dinic模板

    标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...

  3. 网络流-最大流 Dinic模板

    #include <bits/stdc++.h> using namespace std; #define MP make_pair #define PB push_back #defin ...

  4. 网络流--最大流--Dinic模板矩阵版(当前弧优化+非当前弧优化)

    //非当前弧优化版 #include <iostream> #include <cstdio> #include <math.h> #include <cst ...

  5. 网络流最大流——dinic算法

    前言 网络流问题是一个很深奥的问题,对应也有许多很优秀的算法.但是本文只会讲述dinic算法 最近写了好多网络流的题目,想想看还是写一篇来总结一下网络流和dinic算法以免以后自己忘了... 网络流问 ...

  6. Power Network(网络流最大流 & dinic算法 + 优化)

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 24019   Accepted: 12540 D ...

  7. POJ训练计划1459_Power Network(网络流最大流/Dinic)

    解题报告 这题建模实在是好建.,,好贱.., 给前向星给跪了,纯dinic的前向星居然TLE,sad.,,回头看看优化,.. 矩阵跑过了.2A,sad,,, /******************** ...

  8. (网络流 最大流 Dinic || SAP)Control -- hdu --4289

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  9. UESTC 1143 数据传输 网络流 最大流 Dinic

    数据传输 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Sta ...

随机推荐

  1. 谷歌浏览器(Chrome)查看http报文headers信息

    转自:https://blog.csdn.net/floatdreamed/article/details/79208719 ①打开谷歌浏览器,随意输入要搜索的内容 ②按下F12键,此时会弹出浏览器的 ...

  2. E20170528-ts

    partial   adj. 部分的; 偏爱的; 偏袒的; 钟爱的; form   n. 表格; 方式; 形状,形式; 外形 annotate   vt. 注解,注释; n. 注释者; annotat ...

  3. MySQL 四种事务隔离级别详解及对比--转

    http://www.jb51.net/article/100183.htm 接的隔离级别.它的语法如下: ? 1 SET [SESSION | GLOBAL] TRANSACTION ISOLATI ...

  4. Java 8 (2) 使用Lambda表达式

    什么是Lambda? 可以把Lambda表达式理解为 简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 使用Lambda可以让你更 ...

  5. js重写alert()弹窗

    //重写alertwindow.alert = function(str){ var alertFram = document.getElementById('alertFram'); var shi ...

  6. 手机页面操作栏的创建及WebFont的使用

    一.手机界面底部操作栏的创建. <style> .opers{ position:absolute; bottom:0px; left:0px; right:0px; height:3re ...

  7. LN : Eden Bitset_3

    Appreciation to our TA, 王毅峰, who designed this task. 问题描述 Give you N numbers a[1]...a[n] and M numbe ...

  8. html与html5 总结

    时间:于2017年12月3日 19:35:18开始 用于: 这文章用于个人技术总结(全文转发请标明出处,小段摘抄随意) HTML笔记1.html标签不区分大小写,但是建议小写2.常用标签: 可用在he ...

  9. 自定义样式 dialog

    自定义样式 dialog,可设置界面外点击屏幕外和返回键  是否消失 基本用法如下: CustomDialog.Builder customBuilder = new CustomDialog.Bui ...

  10. 推荐一些相见恨晚的 Python 库 「一」

    扯淡 首先说明下,这篇文章篇幅过长并且大部分是链接,因此非常适合在电脑端打开访问. 本文内容摘自 Github 上有名的 Awesome Python.这是由 vinta 在 14 年发起并持续维护的 ...