Down Went The Titanic 题解
看到极小的数据范围首先想到网络流,考虑最大流。
观察到某些点停留次数有限制,考虑拆点:为了方便,我们考虑对每个点都拆为入入点和出点(其实 *,#,@ 不拆也行,因为 @ 本身没有限制,*,# 在下文将提到的与源汇点连边的时候已经限制了),情况如下:
-
.的情况:将入点向出点连容量为 \(1\) 的边。 -
*的情况:将入点向出点连容量为 \(1\) 的边。 -
#的情况:将入点向出点连容量为 \(p\) 的边。 -
@的情况:将入点向出点连容量为无穷大的边。 -
~的情况:不连边。
接着将每个 ~ 和 * 除外的点的出点向他们四周的入点连容量无穷大的边保持图的连通性。
最后将源点向每个 * 连容量为 \(1\) 的边代表其作为起点且只能有一人站立,将每个 # 向汇点连容量为 \(p\) 的边代表其作为终点且只能站 \(p\) 个人。

浙公网安备 33010602011771号