网络流-最大流 Dinic模板
#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模板的更多相关文章
- 网络流--最大流dinic模板
标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...
- 网络流--最大流--Dinic模板矩阵版(当前弧优化+非当前弧优化)
//非当前弧优化版 #include <iostream> #include <cstdio> #include <math.h> #include <cst ...
- [讲解]网络流最大流dinic算法
网络流最大流算法dinic ps:本文章不适合萌新,我写这个主要是为了复习一些细节,概念介绍比较模糊,建议多刷题去理解 例题:codevs草地排水,方格取数 [抒情一下] 虽然老师说这个多半不考,但是 ...
- 【模板】网络流-最大流 Dinic
洛谷 3376 #include<cstdio> #include<algorithm> #include<cstring> #define N 10010 #de ...
- 网络流最大流——dinic算法
前言 网络流问题是一个很深奥的问题,对应也有许多很优秀的算法.但是本文只会讲述dinic算法 最近写了好多网络流的题目,想想看还是写一篇来总结一下网络流和dinic算法以免以后自己忘了... 网络流问 ...
- Power Network(网络流最大流 & dinic算法 + 优化)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 24019 Accepted: 12540 D ...
- POJ训练计划1459_Power Network(网络流最大流/Dinic)
解题报告 这题建模实在是好建.,,好贱.., 给前向星给跪了,纯dinic的前向星居然TLE,sad.,,回头看看优化,.. 矩阵跑过了.2A,sad,,, /******************** ...
- 最大流dinic模板
循环版,点的编号从0开始: ; ; const int INF = 0x3f3f3f3f; struct Edge { int to, next, cap, flow; }edge[MAXM]; in ...
- (网络流 最大流 Dinic || SAP)Control -- hdu --4289
链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...
随机推荐
- mongodb的远程访问
1,centos6上安装mongodb:2,新建可以远程访问的用户,以便可以远程访问: [root@localhost ~]# cd /usr/local/mongodb/bin/ [root@loc ...
- window上安装pymysql
date: 2018-11-26 18:54:04 安装: cmd: pip install pymysql 验证: cmd: python >>import pymysql 不报错即 ...
- 【JSP】EL函数和自定义EL函数
简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何 ...
- [SQL] 命令远程恢复数据库
sp_configure ; RECONFIGURE; GO sp_configure ; RECONFIGURE; GO EXEC master..xp_cmdshell 'net use \\70 ...
- jenkins Email-ext plugin插件中Pre-send Script设置说明
在使用jenkins Email-ext plugin发送邮件时,项目中使用了SVN去同步,发现每次有同步,都会发送邮件,现只想SVN只更新,不发送邮件通知,这就要在Pre-send中做修改 看看官网 ...
- windows 环境下node开发环境搭配问题
当我们使用ccap 生成验证码时,需要node-gyp构建build,但是c的编译环境是在python,vc. node-gyp包 https://github.com/TooTallNate/nod ...
- sublime添加到鼠标右键打开文件的方法?
步骤: 1.win+R 打开运行,并输入regedit. 2.在左侧依次打开HKEY_CLASSES_ROOT\*\shell 3.在shell下新建“Sublime Text”项,在右侧窗口的“默认 ...
- ch 与等宽字体
难题 有的时候,特别想通过字符来判断元素的长度,比如: 多行文本溢出时,文字变省略号 文字一个个的显示 效果分别如下: 第一种情况下,如果可以通过字符的数量判断长度是否溢出,从而把最后几个字符替换成省 ...
- ELK之nginx日志使用json格式输出
json Nginx默认日志输出格式为文本非json格式,修改配置文件即可输出json格式便于收集以及绘图 修改nginx配置文件添加配置,增加一个json输出格式的日志格式 log_format a ...
- poj3417Network【LCA】【树形DP】
Yixght is a manager of the company called SzqNetwork(SN). Now she's very worried because she has jus ...