hdu4280 最大流DINIC
题意:
x最小的到x最大的点同一时间的最大运输量.
思路:
裸的最大流,不解释,注意一点,记得加上防爆栈.
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<stdio.h>
#include<string.h>
#include<queue>
#define N 300000
using namespace std;
struct star
{
int b,c,next;
}D[N];
struct mknum
{
int x,t;
}tou,xin;
queue<mknum>q;
int minn(int x,int y)
{
return x<y?x:y;
}
int list1[100005],list2[100005],tot;
int deep[100005];
void add(int a,int b,int c)
{
D[++tot].b=b;
D[tot].c=c;
D[tot].next=list1[a];
list1[a]=tot;
}
bool bfs(int s,int t,int n)
{
memset(deep,255,sizeof(deep));
deep[s]=0;
xin.x=s;
xin.t=0;
while(!q.empty())
q.pop();
q.push(xin);
while(!q.empty())
{
tou=q.front();
q.pop();
for(int k=list1[tou.x];k;k=D[k].next)
{
int to=D[k].b;
if(deep[to]==-1&&D[k].c)
{
xin.x=to;
xin.t=tou.t+1;
q.push(xin);
deep[xin.x]=xin.t;
}
}
} for(int i=0;i<=n;i++)
list2[i]=list1[i];
return deep[t]!=-1;
} int dfs(int s,int t,int flow)
{
if(s==t)
return flow;
int nowflow=0;
for(int k=list2[s];k;k=D[k].next)
{
list2[s]=k;
int to=D[k].b;
int c=D[k].c;
if(deep[to]!=deep[s]+1||!c)
continue;
if(nowflow==flow)
break;
int temp=dfs(to,t,minn(c,flow-nowflow));
nowflow+=temp;
D[k].c-=temp;
D[k^1].c+=temp;
if(nowflow==flow)
break;
}
if(nowflow==0)
deep[s]=0;
return nowflow;
} int DINIC(int s,int t,int n)
{
int ans=0;
while(bfs(s,t,n))
{
ans+=dfs(s,t,1000000000);
}
return ans;
} int main ()
{
int i,n,m,mx,mi,s,t,tt,a,b,c,x,y;
scanf("%d",&tt);
while(tt--)
{
scanf("%d%d",&n,&m);
mx=-10000000,mi=10000000;
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
if(mx<x)
{
mx=x;
t=i;
}
if(mi>x)
{
mi=x;
s=i;
}
}
memset(list1,0,sizeof(list1));
tot=1;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
add(b,a,c);
}
printf("%d\n",DINIC(s,t,n));
}
return 0;
}
hdu4280 最大流DINIC的更多相关文章
- 网络流之最大流Dinic算法模版
/* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...
- poj-1459-最大流dinic+链式前向星-isap+bfs+stack
title: poj-1459-最大流dinic+链式前向星-isap+bfs+stack date: 2018-11-22 20:57:54 tags: acm 刷题 categories: ACM ...
- 网络流之最大流Dinic --- poj 1459
题目链接 Description A power network consists of nodes (power stations, consumers and dispatchers) conne ...
- 网络最大流Dinic
1.什么是网络最大流 形象的来说,网络最大流其实就是这样一个生活化的问题:现在有一个由许多水管组成的水流系统,每一根管道都有自己的最大通过水流限制(流量),超过这个限制水管会爆(你麻麻就会来找你喝茶q ...
- HDU 3572 Task Schedule(拆点+最大流dinic)
Task Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 学习笔记 --- 最大流Dinic算法
为与机房各位神犇同步,学习下网络流,百度一下发现竟然那么多做法,最后在两种算法中抉择,分别是Dinic和ISAP算法,问过 CA爷后得知其实效率上无异,所以决定跟随Charge的步伐学习Dinic,所 ...
- Power Network(网络流最大流 & dinic算法 + 优化)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 24019 Accepted: 12540 D ...
- ZOJ-2364 Data Transmission 分层图阻塞流 Dinic+贪心预流
题意:给定一个分层图,即只能够在相邻层次之间流动,给定了各个顶点的层次.要求输出一个阻塞流. 分析:该题直接Dinic求最大流TLE了,网上说采用Isap也TLE,而最大流中的最高标号预流推进(HLP ...
- POJ2112_Optimal Milking(网洛流最大流Dinic+最短路Flody+二分)
解题报告 农场有k个挤奶机和c头牛,每头牛到每一台挤奶机距离不一样,每台挤奶机每天最多挤m头牛的奶. 寻找一个方案,安排每头牛到某一挤奶机挤奶,使得c头牛须要走的全部路程中的最大路程的最小值. 要使每 ...
随机推荐
- 《C++ Primer》笔记 第1章 开始
输出运算符<< 的计算结果就是其左侧运算对象 std::endl 结束当前行,并将与设备关联的缓冲区中的内容刷到设备中. 程序员常常在调试时添加打印语句.这类语句应该保证"一直& ...
- ciscn_2019_final_5
目录 ciscn_2019_final_5 总结 题目分析 checksec 函数分析 main menu new_note del_note edit_note 漏洞点 利用思路 EXP 调试过程 ...
- 我与FreeBSD 的故事之二
那些人的丑恶嘴脸使我发笑,我愈发远离所谓的社区与论坛.电视剧<武林外传>说的好:有人的地方就有江湖,江湖从未走远,从未改变.社区中的冲突很少是技术层面的,按照老话说睿智的人很少发表自己的见 ...
- C# 应用 - 使用 HttpClient 发起 Http 请求
1. 需要的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll System.N ...
- Asa's Chess Problem
一.题目 给定一张 \(n\times n\) 的矩阵,每个点上面有黑棋或者是白棋,给定 \(\frac{n\times n}{2}\) 对可以交换的位置,每对位置一定在同一行 \(/\) 同一列.\ ...
- VS添加dll引用
直接添加(CADImport.dll) 手动添加 (sgcadexp.dll) 直接放到项目bin的目录下
- ch1_6_7求解数字排序问题
import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Sca ...
- Linux+mysql混杂
一.linux 1.linux中给某一文件中批量新增一个内容 先vim进入文件,然后先按ctrl+v 然后选中需要的行数, 在shift+i 写你要添加的东西 然后在按下esc 二,mysql 1.l ...
- DAOS 分布式异步对象存储|故障模型
DAOS 依靠大规模分布式单端口存储.因此,每个 Target 实际上都是一个单独的失败点. DAOS 通过在不同的容错域中提供 Target 间的冗余来实现数据和元数据的可用性和持久性.DAOS 内 ...
- Java开发工程师面试-Web基础与数据处理
Servlet执行流程 客户端浏览器向Tomcat服务器发送Http请求 Tomcat解析web.xml文件,找到对应的url以及servlet-name,根据servlet-name找到对应的ser ...