网络流大杂烩

最大流/费用流学习阶段

飞行员配对方案问题

首先我们将外籍飞行员连向源点,英国飞行员连向汇点,边权均为1,然后对于给定的关系,边权也为1。然后我们就求出了一次能派出的最多飞机数量,然后考虑怎么输出方案。如果一个外籍飞行员和英国飞行员的流量为1,那么这两个就配合,输出即可。

试题库问题

首先看这道题,是一个最大流问题。考虑最大流是什么,因为所有试卷都要被包含进去,所以最大流就是试卷的数量。然后每个类型连汇点,边权无限然后试卷连类型,边权为1,然后源点连试卷,边权为1,然后按照残量网络输出路径即可。

圆桌问题

看这道题,是个最大流问题。考虑最大流是什么,因为每个人都要入座,所以最大流就是人。然后公司连每个餐桌,边权为1。源点连每个公司,边权为公司人数。餐桌连汇点,边权为能容纳的元素,然后按照残量网络输出路径即可。

分配问题

看这道题,是个费用流问题。考虑最大流是什么。因为每个人都要干活,所以最大流就是人。然后源点连人,人连任务,跑下费用流就行了。

运输问题

看到货物供需平衡其实就可以往网络流这方面想了。看这道题,是个费用流问题。考虑最大流是什么。因为供需平衡,所以最大流就是货物。跑下费用流就行了。

餐巾计划问题

看这道题,是个费用流问题。考虑最大流是什么。因为要保证每天的餐巾都供的上,那么流就是每天的餐巾。然后先拆个点,将点拆为白天和晚上。首先这个送洗操作可以将一天的晚上连到后面的白天做到。原点向白天流的是新买的,源点向晚上流的是当天一共有多少餐巾,然后这些餐巾回流到下一天晚上或新一天的早上。然后白天连上汇点。这个建图还是比较独特的,但按照上面的步骤思考还是可以做出来的。在最后跑下费用流即可。

听了lay讲的课

网格染色型

方格取数问题

像这种有限制的方格问题我们基本都可以用网络流做,具体的就是对网格进行黑白染色,但这个染色不是随便染的,这个染色要保证从一个格子走到另一个格子时,两个格子异色。对于这道题,我们先假设所有点都可以选,然后减去那些不能选的格子。我们就是这样染色

然后相邻的黑白格子连边

然后我们会发现左边就是黑色格子,右边就是白色格子。点(后续会进行拆店)的容量就是该点的权值。我们要求一个最小割,就是将一些点割断,使得没有点之间互相连通,这里还用到了最小割的性质,割去的边必定是满流边(要么还是有联通,要么不是最小),然后这题就做完了

骑士共存问题

与上题相同的黑白染色方法

王者之剑

首先看题意,如果发现我们停留一秒,那么会发现一个很蠢的事。比如我们先在起点拿宝石,然后四周消失,然后停一秒,然后到四周,取的是0,因为这是偶数秒,那么四周又会消失,这样就不能取到其他东西了。所以这就是停留奇数秒的情况,这是肯定没有听偶数秒优的,所以这个就不用停。所以这题就变成了方格取数问题。

方格取数加强版

黑白染色,然后相邻各自之间连边,因为可以走k次,那边权容量为k,权值为w。但这里经过一次权值就会消失,所以我们可以连一条权值为w容量为1的边,和权值为0,容量为k-1。后然后跑一边费用流即可。

长脖子鹿放置

发现传统的黑白染色方法不再适用。于是我们可以随机找一个点,用你智慧的大脑跑一边模拟。就是钦定这个点是黑色,那么能到达的点就是白色。如果还有没有染色的点,那么就重复这个操作。或者还有一种方法,因为我们每次都向上或向下奇数行,所以我们可以对相邻行染色。又有一种染色方法,是非常神奇的。我们将图按照传统方法染色,然后将黑点和白点分开形成一张新图,发现不会有跨图的边,然后再每张图内部跑骑士共存问题就行了。

水晶 直接染色,然后就可以了

老C的方块


感觉比happiness简单qwq
看到是网格,想到染色。因为限制在四个格子内进行,所以考虑染成四种颜色,然后稍微跑下网络流就可以了。

不知道什么名字1

这样可以刻画的限制一般形如:如果一个元素被划入集合 𝑎,另一个元素被划入集合
𝑏 及之后,产生的代价。这里需要保证非负性。

happiness

反正不看题解写不出来。考虑要将一些元素划入两个集合,并产生一些代价。在一些元素共同在一个集合时,会产生一些代价。我们通常是这样做的:

使用最小割,考虑将尽可能小的流割掉。
和左边集合相连,代表选文,和右边集合相连,代表选理,中间小小的是共同在一个集合的代价。
如果两个人都选文,为了不连通,那么割掉的边就会是w4,w5,w6,如果有一条保留,那么就矛盾。
如果一个人选文,一个人选理,为了不连通,那么割掉的边就会是w2,w3,w4,w5,如果有一条保留,那么就矛盾。
其他同理。

线性规划

没学过,先咕着,但是听懂了一道题

志愿者招募

这题看起来十分困难,实则十分困难。考虑如何用网络流刻画这些条件。首先每天必须得有ai个人,那么我们希望流进这条边至少有ai的流量,同时流过还有费用,每类人可以工作一段天数,我们可以这样建模。

我们发现如果这样,那么就可以解决这个问题了。平的边代表天,弯的边代表人。

posted @   wuhupai  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示