网络流 24 题
网络流 24 题
1. 餐巾计划问题
将每天拆成两个点,
- 从
向 连流量为 ,费用为 的边,如果满流则表示当天的干净毛巾数量足够。 - 从
向 连流量为 ,费用为 的边,表示每天结束时接收到 条脏毛巾。 - 从
向 连流量为 ,费用为 的边,表示每天开始时购买毛巾。 - 从
向 连流量为 ,费用为 的边,表示送到快洗。 - 从
向 连流量为 ,费用为 的边,表示送到慢洗。 - 从
向 连流量为 ,费用为 的边,表示将脏毛巾留到下一天。
跑最小费用最大流即可。
2. 星际转移问题
Luogu P2754 [CTSC1999]家园 / 星际转移问题
按照时间拆点,将每个点按照编号和时间拆成若干个点
注意每次跑最大流的时候都是在上一次跑完的残量网络上跑,因此最大流的答案需要累加。
3. 飞行员配对方案问题
二分图最大匹配板子,直接跑最大流即可得出最大匹配数。
考虑方案,显然在残量网络中,匹配上的一对之间的连边的流量变成了
4. 软件补丁问题
(口胡解法)直接跑状压。
5. 太空飞行计划问题
(因为输入格式太恶心了所以就口胡了)将实验与仪器的依赖关系建成二分图,流量为
方案就扫一下所有边,看那些边的流量为
6. 试题库问题
建二分图然后直接跑最大流即可,方案判断是否流量为
7. 最小路径覆盖问题
对于一个路径,显然路径上的每一个除了终点的点的出度均为
对于输出方案,可以用并查集判断每条路径上的点,然后看哪一个点没有入度就将这个点作为路径起点输出即可。
8. 魔术球问题
从小到大枚举答案。假设
枚举答案的时候,注意每次都在上一轮的残量网络上跑最大流,因此答案需要累加。
9. 最长不下降子序列问题
第一个问题直接 DP 即可。
第二个问题和第三个问题基本相同。
将每个下标按照
对于问题三,可以将
10. 航空路线问题
将回路拆成两条从
如果出现只能到达
11. 方格取数问题
将格子按照棋盘的方式进行黑白染色,相邻格子连边形成二分图,然后跑最小割。
12. 机器人路径规划问题
错题,不做。
13. 圆桌问题
直接建二分图跑二分图匹配即可。
14. 骑士共存问题
与方格取数问题相同,按照棋盘方式黑白染色,然后将两个骑士能攻击到的位置连边,跑最小割。
15. 火星探险问题
源点向机器人的起点连边,机器人的终点向汇点连边,对于每一个石头都拆点成入点和出点,入点和出点之间先连一条流量为
对于方案,还是通过看残量网络中那些边被流过多少流量进行判断是否被经过以及被经过多少次。
16. 最长 k 可重区间集问题
区间的端点作为特殊点。相邻两个特殊点之间连一条流量为
17. 最长 k 可重线段集问题
与最长 k 可重区间集的建模方式基本一致。不过因为可能出现线段的左右端点的
18. 汽车加油行驶问题
(口胡)将图按照剩余油量分层,然后就很板了。
19. 孤岛营救问题
令
20. 深海机器人问题
与火星探险问题完全一致。
21. 数字梯形问题
每个点拆点成为入点和出点。从源点向梯形最顶层的
- 对于第一个问题,每个点的入点向出点连流量为
,费用为点权的边。向左下和右下的点的入点连流量为 ,费用为 的边。 - 对于第二个问题,每个点的入点向出点连流量为
,费用为点权的边。向左下和右下的点的入点连流量为 ,费用为 的边。 - 对于第三个问题,每个点的入点向出点连流量为
,费用为点权的边。向左下和右下的点的入点连流量为 ,费用为 的边。
跑最大费用最大流即可。
22. 分配问题
直接建立二分图跑二分图最大带权匹配即可。
23. 运输问题
与分配问题一样,跑二分图最大带权匹配。分别用最小费用最大流和最大费用最大流各跑一遍即可。
24. 负载平衡问题
可以计算出最终状态下每个仓库存储的货物数量,如果一个仓库存多了,那么就从源点向该仓库连流量为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步