网络流 24 题做题记录

网络流 24 题做题记录

P3254 圆桌问题

源点连单位,容量为单位人数,桌子连汇点,容量为桌子容量,各单位连各桌子,容量为 \(1\),因为每个单位在每张桌子上最多 \(1\) 人,跑最大流。

P2763 试题库问题

源点连试题,容量为 \(1\),试题连对应种类,容量为 \(1\),种类连汇点,容量为该种类需要试题数,跑最大流。

P4015 运输问题

源点连仓库,容量为货物数,费用 \(0\);商店连汇点,容量为需要货物数,费用 \(0\),仓库连商店,容量无穷大,费用为 \(c_{i,j}\),跑最小费用最大流和最大费用最大流。

P4016 负载平衡问题

多于平均值的需要运出,于是从 \(s\) 连,容量为多出的部分,费用 \(0\),少于的同理,相邻点连边,容量无限制,费用 \(1\),跑最小费用最大流即可。

P4014 分配问题

和运输问题类似。

P1251 餐巾计划问题

拆点,将每天拆成早上和晚上,早上进干净餐巾并向汇点出,晚上进脏餐巾。

  1. 早上将干净餐巾运到汇点,即早上向汇点连容量为这天需要餐巾数,费用为 \(0\) 的边。
  2. 晚上从源点获得脏餐巾,即源点向晚上连容量为这天需要餐巾数,费用为 \(0\) 的边。
  3. 将这天晚上的脏餐巾留到下一天晚上,即这天晚上向下一天晚上连容量为 inf,费用为 \(0\) 的边。
  4. 买新餐巾,即源点向早上连容量为 inf,费用为 \(p\) 的边。
  5. 慢洗,也就是今天晚上的脏餐巾送到第 \(i+m\) 天早上变成干净毛巾,设当前为第 \(i\) 天,从这天晚上向第 \(i+m\) 天早上连容量 inf,费用 \(f\) 的边。
  6. 快洗,与慢洗类似。

P2770 航空路线问题

相当于求两条不相交的 \(1\)\(n\) 的路线。拆点,若流过两点间的边则说明这个点被选中。内部边容量为 \(1\),因为每个点只能选一次,费用为 \(1\),因为会对结果造成 \(1\) 的贡献。输入的边就出点连入点,最后跑最大费用最大流。输出方案就沿着流满的边跑两遍即可。

P2774 方格取数问题

容易发现该题可以转化成二分图最小割点问题。此时需要保证两侧的点集内部都没有公共边,不妨让左侧为所有横纵坐标和为奇数的点,右侧是和为偶数的点。拆点跑最小割即可。

P3355 骑士共存问题

发现与上题类似,且按上题划分点集的方式能保证点集内部互不冲突。发现障碍对于其他格子并没有影响,建图时忽略最后减去个数即可。

posted @ 2023-01-11 18:35  l_x_y  阅读(23)  评论(0编辑  收藏  举报