网络流
文章平均质量分 73
伍叁壹_
这个作者很懒,什么都没留下…
展开
-
P3866 [TJOI2009] 战争游戏 题解
传送门:P3866 [TJOI2009] 战争游戏Solution首先考虑如何建图。先看建源点和汇点的原因:建源点:有若干支不同的军队需要拦截,所以要将他们所在点都与源点连接,以跑网络流。建汇点:有若干个通向图外的可行边界点,也要将它们都与汇点连在一起,以跑网络流。这样一来,源点的汇点的建图方式就可以轻易得到了:源点:自源点向所有军队的所在点相连,流量为 infinfinf。汇点:将所有可以通行的图内边界点与汇点相连,流量为 infinfinf。如此,解决此题的具体方式也就出来了:原创 2022-03-19 08:24:15 · 152 阅读 · 0 评论 -
P4722 【模板】最大流加强版 / 预流推进
本题解侧重解释 HLPP\text{HLPP}HLPP 细节部分,而对于 HLPP\text{HLPP}HLPP 的详细思路等不会过多阐述。HLPP\text{HLPP}HLPP 思路按照众多大佬所说的那样,HLPP\text{HLPP}HLPP 就是将水流自源点一步一步地推到其他中转点,最后推向汇点,汇点累计的流量就是该网络的最大流。注意,在此算法中,我们的目标是图中所有中转点最后存储的流量为 0。在此过程中,为了防止 TLE\text{TLE}TLE,也就是避免两个点互相不停地将水流推来推去的情原创 2022-03-19 08:23:37 · 273 阅读 · 0 评论 -
LG-P3872 [TJOI2010]电影迷
传送门:P3872 [TJOI2010]电影迷以最大权闭合子图为基础,再加上一点小拓展。本题解主要是想细讲一下最大权闭合子图。最大权闭合子图1. 概念闭合子图:在原图 GGG 的闭合子图中,每一个节点,它在 GGG 中所能到达的所有节点都包含在这个子图中。最大权闭合子图:即原图 GGG 中点权之和最大的闭合子图。2. 运用目标:求一图的最大权闭合子图。<1>先建立一超级源点和超级汇点。对于每个带权值的节点:若节点为正,则与超级源点相连,流量为该点权值;反之原创 2022-03-19 08:21:27 · 330 阅读 · 0 评论 -
【DSY-2117】摩尔庄园
2117: 摩尔庄园从前,有一个地方叫作摩尔庄园。摩尔庄园里有 n 座房子,编号为1到n。房子与房子之间有隧道连接。由于建造者们很懒,它们只建了 n−1 条隧道,每条隧道长度为1。对于编号 i(i>1) 的房子,有一条连向编号为 ⌊i2⌋\left\lfloor\frac{i}{2}\right\rfloor⌊2i⌋ 的房子的隧道。隧道是双向的。对于每间房子,我们知道这间房子有 ci 份食物可供最多 ci 只拉姆们食用。在这庞大的 n 座房子中,住着 m 只拉姆,编号从1到m。对于第 i 只拉姆原创 2022-03-18 13:09:05 · 205 阅读 · 0 评论 -
网络流【网络最大流 + 最小网络最大流】
一、网络最大流(从学委那里拿的动图。)Dinic\text{Dinic}Dinic/*Dinic 在残留网络和 EK 的基础上,按照源点到该点的距离进行分层,每次寻找增广路径时,保证每次都是从一层走到下一层。每次可寻找到多条增广路径 */#include<bits/stdc++.h>using namespace std;#define int long long#define maxn 205#define maxm 10005#define rep(i,原创 2022-02-12 16:26:23 · 641 阅读 · 0 评论 -
【LG-P2472 [SCOI2007]】蜥蜴
传送门:P2472 [SCOI2007]蜥蜴最大网络流(建图复杂)此题外附一个当前弧优化的运用。除建图外,其余都是 Dinic\text{Dinic}Dinic 板子了。石柱内部建两个点,一个入口,一个出口, 容量为其高度;如果可以一步跳出地图,就和汇点连一条边;源点和木桩连边,因为一个木桩上只有一只蚂蚱,所以容量为 1;若木桩 A 到木桩 B 能一步跳到,就在它们之间连边,容量为 inf\text{inf}inf。代码 + 注释#include<iostream原创 2022-03-17 13:01:35 · 71 阅读 · 0 评论 -
【LG-P2891[USACO07OPEN]】Dining G
传送门:P2891 [USACO07OPEN]Dining G最大网络流:拆点的运用针对题目条件,我们可有一下分析:1. “一头奶牛只和一种饮料且只吃一种食物”这个条件意在限定一个点的流量。所以,就可以将代表一头奶牛的每一个节点拆分成两个节点,入点和出点。这头奶牛喜欢的所有食物连向入点,自出点连向它喜欢的所有饮料。并且自入点到出点的路径容量为 1。2. “每一份食物和一份饮料只能给一头奶牛吃”满足这个条件,只需要将源点连向食物的边的容量设为 1,将饮料连向汇点的容量设为 1 即可。这样就能保原创 2022-03-17 13:01:01 · 58 阅读 · 0 评论 -
【LG-P1251】餐巾计划问题
传送门:P1251 餐巾计划问题一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同。假设第 i 天需要 ri 块餐巾(i = 1, 2, ..., N)。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 天(n>m),其费用为 s 分(s<f)。每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。但是每天洗好的餐巾和购买的新餐巾数之和,要满足当原创 2022-03-17 13:00:22 · 142 阅读 · 0 评论 -
【Luogu-P3324 [SDOI2015] / DSY-1993】星际战争
传送门:P3324 [SDOI2015]星际战争二分 + 最大流Solution\mathfrak{Solution}Solution1不可否认,看到题面的第一反应是构造二分图,让武器在一边,机器人在另一边,武器连向自己可以攻击的机器人。然后边的费用就是该武器灭掉这个机器人所用的时间,最后跑费用流。但这个想法太 naive\text{naive}naive 了,是错的。因为答案是一个实数,而且武器的攻击是连续的,所以万万不可绝对地将时间设为费用。2既然时间不能为费用,那不妨来一个大胆的想法:原创 2022-03-17 12:59:43 · 110 阅读 · 0 评论 -
【XSY-Contest2618.Problem A】抢夺
传送门:Problem A: 抢夺(放不了题面。)Solution\mathfrak{Solution}Solution一道很像最大流的费用流。1第一眼看过去觉得是分层图。原因:到某个节点时车的状态(第几天)是不同的。但数据范围明显不让你这么干。然后就不难想到二分。二分的明显是天数。2如何判断当前天数能否满足题意?使用增广路来实现。每次找源点和汇点之间的增广路径,因为每走一条路用一天,所以不妨设路径长度都为 1。那么这条增广路的长度就是走这条路所用的天数,记为 disndis_ndis原创 2022-03-17 12:59:03 · 64 阅读 · 0 评论