网络瘤 24 题 做题记录

做(shui)完了网络瘤 24 题,来总结一下

本文中删去了机器人一题,用 志愿者招募 代替。

网络瘤的重点在于建图时的思路,建出的图已经不重要了。

模板类

负载平衡问题

运输问题

分别是最大流,最小费用流的模板题,无建模难度。

我跑最大流和最小费用流用的是预流推进和原始对偶。

Upd: 现在我学废了更快的费用流:网络单纯形

二分图匹配

飞行员配对方案问题

二分图匹配模板题。

考虑用边描述配对限制,一个人最多与另一个人配对,如果流量代表配对则流量限制应为 \(1\)

对每个飞行员建一个点,建源 \(S\),汇 \(T\)\(S\) 连英国飞行员,\(T\) 连外籍飞行员,每有一个配对关系就在两飞行员的点间连边,边权均为 \(1\),跑最大流,两飞行员间若边有流量则他们配对。

圆桌问题

建模想法与飞行员一题相似。

对每个单位和桌子建点,单位连源 \(S\),桌子连汇 \(T\),边权为单位的人数/桌子的人数,单位和桌子间连边,边权为 \(1\),代表这个单位只能去 \(1\) 个人到某个桌子,跑最大流即可,输出类似上题。

试题库问题

考虑题数限制。题数为刚好 \(m\) 道,可以用流量代表题数,边的流量限制题数不超过 \(m\),最大流要求题数不小于 \(m\),因此试卷向汇连边,流量限制为 \(m\)

又由于每类试题数相加刚好就是 \(m\),所以可以直接把试卷当汇。

对于每道题的限制,由源向题连边,权为 \(1\) 代表限制。

总结:源连题权为 \(1\),题连类型权为 \(1\),类型连汇权为要选的该类型题数,跑最大流。

分配问题

对人和工作建点,人连源 \(S\),工作连汇 \(T\),边权为 \(1\) 代表每个人只能有一份工作,费用为 \(0\).

\(i\) 和工作 \(j\) 间连边,边权为 \(1\),费用为 \(-c_{i,j}\),跑最小费用流。

最短路(非网络流解法)

这类题都要求最短时间

软件补丁问题

每个错误是否有状压为一个 int,不同的状态间连边对应补丁(应用补丁后状态发生变化)长度对应补丁的时间,跑最短路。

需要注意的是,由于状态数过多,不必真的连边,每次转移时枚举补丁即可。

孤岛营救问题

将坐标和有无钥匙塞到一个 std::tuple 里,每次状态变化依赖于坐标和有无钥匙,跑最短路。

由于边权均为 \(1\),也可 BFS.

todo

注:AFO 了,所以咕了。

餐巾计划问题
汽车加油行驶问题
最小路径覆盖问题
太空飞行计划问题
航空路线问题
魔术球问题
最长不下降子序列问题
星际转移问题
方格取数问题
数字梯形问题
深海机器人问题
最长k可重线段集问题
骑士共存问题
火星探险问题
志愿者招募

posted @ 2023-06-08 16:45  383494  阅读(3)  评论(0编辑  收藏  举报