#include <bits/stdc++.h>

 using namespace std;

 #define MP make_pair
#define PB push_back
#define ls first
#define rs second
typedef long long LL;
typedef pair<int,int> PII;
const double eps=1e-;
const double pi=acos(-1.0);
const int K=1e5+;
const int mod=1e9+; vector<pair<int,int>>mp[K];
int n,m,cnt,flow[K*],deep[K],cur[K]; int bfs(int s,int t)
{
queue<int>q;
memset(deep,,sizeof deep);
q.push(s),deep[s]=;
while(!q.empty())
{
int u=q.front();q.pop();
for(auto &it:mp[u])
if(!deep[it.ls]&&flow[it.rs])
{
deep[it.ls]=deep[u]+;
q.push(it.ls);
if(it.ls==t)
return ;
}
}
return ;
}
int dfs(int x,int d,int t)
{
if(x==t) return d;
for(int i=cur[x];i<mp[x].size();cur[x]=++i)
{
int u=mp[x][i].ls,v=mp[x][i].rs;
if(deep[u]==deep[x]+&&flow[v])
{
int td=min(d,dfs(u,min(d,flow[v]),t));
if(!td) continue;
flow[v]-=td;
flow[v^]+=td;
return td;
}
}
return ;
}
int dinic(int s,int t)
{
int ret=,d;
while(bfs(s,t))
{
memset(cur,,sizeof cur);
while(d=dfs(s,mod,t)) ret+=d;
}
return ret;
}
int main(void)
{
while(~scanf("%d%d",&m,&n))
{
cnt=;
memset(mp,,sizeof mp);
for(int i=,u,v,w;i<m;i++)
{
scanf("%d%d%d",&u,&v,&w);
flow[cnt]=w,flow[cnt+]=;
mp[u].PB(MP(v,cnt++));
mp[v].PB(MP(u,cnt++));
}
printf("%d\n",dinic(,n));
}
return ;
}

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

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

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

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

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

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

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

  4. 【模板】网络流-最大流 Dinic

    洛谷 3376 #include<cstdio> #include<algorithm> #include<cstring> #define N 10010 #de ...

  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模板

    循环版,点的编号从0开始: ; ; const int INF = 0x3f3f3f3f; struct Edge { int to, next, cap, flow; }edge[MAXM]; in ...

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

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

随机推荐

  1. 剑指offer题目记录

    1.如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString { public: CMyString(char* pData = NULL); CMyStri ...

  2. asp.net搭建mybatis开发环境

    mybatis其实就是ibatis的升级版本不仅能在java上使用,asp.net照样可以使用mybatis来开发程序.mybatis是一个比较小巧的ORM框架,类似hibernate.自己试了一下用 ...

  3. [APP] Android 开发笔记 006-使用短信验证SDK进行短信验证

    1. 下载SDK (http://www.mob.com/#/download) SMS For Android Studio: http://www.mob.com/download/sms/and ...

  4. 在线工具-程序员的工具箱-在线Cron表达式生成器

    在线Cron表达式生成器 http://cron.qqe2.com/ 在线工具 - 程序员的工具箱 https://tool.lu/

  5. java的HashMap 原理

    https://www.cnblogs.com/chengxiao/p/6059914.html 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比 ...

  6. 在CentOS6.8下安装Docker

    在CentOS6.8下安装Docker 一.查看系统版本 [root@localhost opt]# uname -a Linux localhost.localdomain -.el6.x86_64 ...

  7. 【巷子】---vue基于mint-ui三级联动---【vue】

    一.基本配置 https://github.com/modood/Administrative-divisions-of-China 三级联动数据地址 二.vue基本配置 1.cnpm install ...

  8. Windows下使用Gflags和UMDH查找内存泄漏

    GFlags和UMDH与WinDbg一样,都是Debugging Tools for Windows里的工具. 1.设置符号路径 去微软官网下载对应的操作系统的符号安装文件,并安装到某个目录,如C:\ ...

  9. Check access restrictions in Zabbix agent configuration

    配置自定义监控K值时,出现下面错误提示 [root@manage ~]# zabbix_get -s -k "login_user" zabbix_get []: Check ac ...

  10. jsonk可以传递boolean

    JSON 布尔值可以是 true 或者 false.如: { "flag":true } 或者{“flag”,"true"}