loj#P4151. 「JOISC 2024 Day2」桌游

「JOISC 2024 Day2」桌游

题目描述

题目译自 JOISC 2024 Day2 T1 「ボードゲーム / Board Game

给定一个 NN 个格子,MM 条无向边的棋盘,其中边 j(1jM)j(1\le j\le M) 连接格子 UjU_jVjV_j。所有格子分为两类:激活格和停止格。格子信息用一个字符串 SS 表示,若 SSii 位(1iN1\le i\le N)为 0,则格子 ii 为激活格,若 SSii 位(1iN1\le i\le N)为 1,则格子 ii 为停止格。

总共有 KK 个玩家,编号从 11KK。每个玩家有一枚棋子,初始时各有一个固定起点,其中玩家 p(1pK)p(1\le p\le K) 的棋子放置于格子 XpX_p。多个玩家的棋子起点可能相同。

从玩家 1 开始,每个玩家按编号顺序轮流移动棋子。玩家 pp 的回合之后是玩家 p+1p+1 的回合(若 p=Kp=K,则之后是玩家 11 的回合)。每个玩家在自己的回合内:

  1. 选择一个与该玩家的棋子所在格子有边直接相连的格子,并将棋子移动到该格。
  2. 若选择的目标格是激活格,重复第 1 步;若选择的为停止格,该回合停止。

JOI 君希望知道:要使玩家 1 的棋子移动到格子 TT,所有玩家的棋子共需要移动多少步?若玩家 1 的棋子在回合中途位于格子 TT,同样满足条件,从而立即结束游戏。

1,2,N1,2,\cdots N 中每个 TT,求出答案。

输入格式

从标准输入读入以下内容:

$$\begin{align} & N\enspace M\enspace K \\ & U_1\enspace V_1 \\ & U_2\enspace V_2 \\ & \vdots \\ & U_M\enspace V_M \\ & S \\ & X_1\enspace X_2\enspace \cdots X_K \end{align} $$

输出格式

NN 行各一个整数,其中第 TT 行(1TN1\le T\le N)表示使玩家 1 的棋子移动到格子 TT 所需的 KK 个玩家总步数的最小值。

5 5 2
1 2
2 3
2 4
3 5
4 5
00000
1 5
0
1
2
2
3

玩家 1 的棋子初始位于格子 11,因此 T=1T=1 对应答案为 00

对于 T=2T=2,玩家 1 第一步将棋子从格子 11 移动到格子 22,答案为 11

对于 T=3T=3,玩家先将棋子从格子 11 移动到格子 22;由于格子 22 是激活格,玩家可以继续将棋子从格子 22 移动到格子 33

由于无法用不超过 1 步将玩家 1 的棋子移动到格子 33T=3T=3 对应答案为 22

类似地,容易证明,T=4T=4 对应答案为 22T=5T=5 对应答案为 33

这组样例满足子任务 1,4,5,6,7,81,\,4,\,5,\,6,\,7,\,8 的限制。

5 5 2
1 2
2 3
2 4
3 5
4 5
01000
1 5
0
1
4
4
5

对于 T=3T=3,至少需要 4 步:

  • 第一步,玩家 1 将棋子从格子 11 移动到格子 22,格子 22 为停止格,玩家 1 回合结束。
  • 第二步,玩家 2 将棋子从格子 55 移动到格子 33,格子 33 为激活格,玩家 2 回合继续。
  • 第三步,玩家 2 将棋子从格子 33 移动到格子 22,格子 22 为停止格,玩家 2 回合结束。
  • 第四步,玩家 1 将棋子从格子 22 移动到格子 33

无法用不超过 3 步达成目标,因此 T=3T=3 对应答案为 44.

这组样例满足子任务 2,4,5,6,7,82,\,4,\,5,\,6,\,7,\,8 的限制。

5 5 2
1 2
2 3
2 4
3 5
4 5
01100
1 5
0
1
3
3
4

这组样例满足子任务 3,4,5,6,7,83,\,4,\,5,\,6,\,7,\,8 的限制。

8 7 5
1 3
5 7
4 6
2 6
2 3
7 8
1 5
10011010
4 6 4 7 1
4
2
3
0
10
1
17
24

这组样例满足子任务 4,6,7,84,\,6,\,7,\,8 的限制。

12 13 3
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 10
2 9
7 12
11 12
110000011101
1 9 11
0
1
4
5
6
7
8
8
4
1
13
9

这组样例满足子任务 4,6,7,84,\,6,\,7,\,8 的限制。

数据范围与提示

对于所有数据,满足:

  • 2N500002\le N\le 50\,000
  • 1M500001\le M\le 50\,000
  • 2K500002\le K\le 50\,000
  • 1UjVjN(1jM)1\le U_j\le V_j\le N(1\le j\le M)
  • (Uj,Vj)(Uk,Vk)(1j<kM)(U_j,V_j)\neq (U_k,V_k)(1\le j<k\le M)
  • 从任何一个格子出发,经过若干条边,可以到达任意其他格子
  • 字符串 SS 长度为 NN 且仅包含 01
  • 1XpN1\le X_p\le N1pK1\le p\le K
  • N,M,KN,M,K 为整数
  • Uj,VjU_j,V_j 为整数(1jM1\le j\le M
  • XpX_p 为整数(1pK1\le p\le K

详细子任务附加限制及分值如下表所示:

子任务编号 附加限制 分值
11 没有停止格 33
22 恰好有一个停止格 77
33 恰好有两个停止格
44 N,M,K3000N,M,K\le 3\,000 1919
55 K2K\le 2 2323
66 K100K\le 100 99
77 N,M,K30000N,M,K\le 30\,000 2323
88 无附加限制 99