
网络流
文章平均质量分 83
Lynstery
一只蒟蒻
展开
-
[最小费用最大流] BZOJ2324: [ZJOI2011]营救皮卡丘
题意题解题目的意思即求K条路覆盖所有节点,走过的总路程的最小值,有一个限制条件就是当某个人从i走到j时,途径的节点都<=j。 对于这个限制条件,我们可以简单的floyd预处理出来,得f[i][j] 为i到j的最短路,且途中的点都<=max(i,j)。 我们需要简化模型:某个人走过的一条路径肯定是分阶段的,也就是说他从某节点i经过一系列合法点到j后,需要停一停等其他人开拓了一些节点再走。我们把某一原创 2017-02-16 09:00:22 · 540 阅读 · 0 评论 -
[最小割+Tarjan] BZOJ1797: [Ahoi2009]Mincut 最小割
关于最小割唯一性:在残余网络上跑 TarjanTarjanTarjan 。记 idxidxid_x为点 xxx 所在 SCCSCCSCC 的编号。将每个 SCCSCCSCC 缩成一个点,得到的新图就只含有满流边了。那么新图的任一 S−TS−TS-T 割都对应原图的某个最小割。对于任意一条满流边 (u,v)(u,v)(u,v),若能够出现在某个最小割集中,当且仅当 idu≠idvidu≠...原创 2018-02-21 21:47:30 · 566 阅读 · 0 评论 -
《最小割模型在信息学竞赛中的应用》——学习笔记
《最小割模型在信息学竞赛中的应用》学习笔记基础流网络的定义,容量限制,反对称性,流守恒性…我们约定对于点集X,YX,YX,Y ,令 f(X,Y)=∑u∈X∑v∈Yf(u,v)f(X,Y)=∑u∈X∑v∈Yf(u,v)f(X,Y)=\sum_{u \in X}\sum_{v \in Y} f(u,v) ∀X,f(X,X)=0∀X,Y,f(X,Y)=−f(Y,X)∀X,Y,Z,&nb...原创 2018-02-16 00:44:50 · 981 阅读 · 0 评论 -
[最小割] BZOJ2400: Optimal Marks
论文题。 二进制每位独立算,每个编号就只有 010101 两种。可以看作分成两个集合,用最小割模型解。 题目要求在边权和最小的前提下,还要保证编号和最小。这个只需要每次从 TTT 出发倒着走,能到的点一定是在 TTT 集合内,其他的都看作是 000,这样就是最小的。#include<cstdio>#include<cctype>#include<cst...原创 2018-02-14 23:39:21 · 405 阅读 · 0 评论 -
Dinic——模板整理
Dinic:最大流算法 时间复杂度:O(n)#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int maxn=10005,maxe=200005;struct Edge { int from,to,cap,flow; } Es[maxe];int原创 2017-02-21 19:13:37 · 451 阅读 · 0 评论 -
[二分+最大流] BZOJ1532: [POI2005]Kos-Dicing
数据范围略有毒…一开始还以为是什么贪心… 其实就直接二分,然后最大流暴力验证一下就好了。#include<cstdio>#include<queue>#include<cstring>#include<algorithm>using namespace std;const int maxn=30005,maxe=100005;struct Edge{ int from,to,c原创 2017-09-29 14:23:43 · 396 阅读 · 0 评论 -
[二分+有上下界最大流] ZOJ3496: Assignment
题意Company A wants to transport as many goods as possible from city S to city T. So they ask company B to do the transportation. There are n cities here in the problem and there are directed roads from原创 2017-07-01 18:49:04 · 580 阅读 · 1 评论 -
[有上下界最小流] BZOJ2502: 清理雪道
题意滑雪场坐落在FJ省西北部的若干座山上。 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向。 你的团队负责每周定时清理雪道。你们拥有一架直升飞机,每次飞行可以从总部带一个人降落到滑雪场的某个地点,然后再飞回总部。从降落的地点出发,这个人可以顺着斜坡向下滑行,并清理他所经过的雪道。 由于每次飞行的耗费是固定的,为了最小化耗费,你想知道如何用最少原创 2017-06-30 15:27:53 · 432 阅读 · 1 评论 -
上下界网络流——学习笔记
这个网上写的好的文章很多啊,我就随便写一下好了。 1.无源汇有上下界可行流 先令每条边的流量等于流量下限,得到一个初始流,然后建出这个流的残量网络。 这个初始流不满足流量守恒,因此最终的可行流一定是在这个初始流的基础上增大了一些边的流量使得所有点满足流量守恒。 现在我们需要在初始流的残留网络中多加一些辅助的边和点来转化问题。我们考虑: 如果i点流入量>流出量, 我们需要让多的流出量有一个原创 2017-06-30 12:47:05 · 493 阅读 · 1 评论 -
[上下界网络流] BZOJ2406: 矩阵
题意题解求最小值的最大值,容易想到二分答案。 对于当前二分的mid,现在就要考虑怎么验证,实际上就是要满足形如:∣Asum[i]−Bsum[j]∣≤mid\lvert A_{sum}[i]-B_{sum}[j]\rvert \le mid 的所有不等式都成立。 变形一下可以得到:Asum[i]−mid≤Bsum≤Asum[i]+midA_{sum}[i]-mid\le B_{sum} \le A原创 2017-06-30 11:35:21 · 524 阅读 · 1 评论 -
[最大流] BZOJ1066: [SCOI2007]蜥蜴
题意在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后其他蜥蜴不能落脚。任何时刻不能有两只蜥蜴在同原创 2017-03-15 09:05:50 · 511 阅读 · 0 评论 -
[费用流] BZOJ1070: [SCOI2007]修车
题意同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。 顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。 第一行有两个m,n,表示技术人员数与顾客数。 接下来n行,每行m个整数。第i+1行第j个数表示第j位技术人员维修第i辆车需要用的时原创 2017-03-09 19:32:41 · 532 阅读 · 0 评论 -
最小费用最大流(spfa增广)——模板整理
这个算法好像没名字。。就是每次spfa增广。 时间复杂度O(n*m^2*3)?#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int maxn=5005,maxe=100005;int n,m,nxt[maxe],S,T,fir[maxn],tot=原创 2017-02-21 19:35:52 · 1132 阅读 · 0 评论 -
[最小割+对偶建图+最短路] BZOJ1001: [BeiJing2006]狼抓兔子
题意题解题意其实就是求最小割。但是发现点数和边数都特别大,直接上最大流肯定T了。那么如何转换呢? 对于可以画在一个平面且没有边相交的图,我们称之为平面图。平面图中的边把平面分割为一个一个面,本题的面即是一个个三角形。最外围的无穷大的面称为外部面。 所谓对偶建图即是把面当做节点,对于每条公共边界,对应的两个面之间连边。 对于最小割问题,我们就可以把S-T的一个割看成一条路径,其经过的边即是割掉的原创 2017-02-17 22:06:32 · 599 阅读 · 0 评论 -
[最小割] BZOJ3144: [Hnoi2013]切糕
经典的最小割建图,用 ∞∞\infty 边体现限制条件。inline char gc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}inline int getint(){ ...原创 2018-02-21 22:26:54 · 517 阅读 · 0 评论