#L4151. 「JOISC 2024 Day2」桌游

    ID: 4770 传统题 1000~3000ms 256MiB 尝试: 5 已通过: 1 难度: 10 上传者: 标签>图结构最短路博弈论图论广度优先搜索多源BFS状态压缩JOISC2024

「JOISC 2024 Day2」桌游

题目描述

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

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

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

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

选择一个与该玩家的棋子所在格子有边直接相连的格子,并将棋子移动到该格。

若选择的目标格是激活格,重复第 11 步;若选择的为停止格,该回合停止。

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

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

输入格式

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

NN MM KK U1U1 V1V1

U2​U2 V2V2

​⋮

UMUM VMVMSS

X1X1 X2X2 ​⋯ XKXK

输出格式

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

样例1:

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

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

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

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

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

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

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

样例2:

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

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

第一步,玩家 11 将棋子从格子 11 移动到格子 22,格子 22 为停止格,玩家 11 回合结束。

第二步,玩家 22 将棋子从格子 55 移动到格子 33,格子 33 为激活格,玩家 22 回合继续。

第三步,玩家 22 将棋子从格子 33 移动到格子 22,格子 22 为停止格,玩家 22 回合结束。

第四步,玩家 11 将棋子从格子 22 移动到格子 33

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

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

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 的限制。

样例4:

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 的限制。

样例5:

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 的限制。

数据规模与约定

对于所有数据,满足:

2N50,0002 \le N \le 50,000

1M50,0001 \le M \le 50,000

2K50,0002 \le K \le 50,000

1UjVjN1 \le U_j \le V_j \le N (1jM)(1 \le j \le M)

(Uj,Vj)(Uk,Vk)(U_j,V_j) \neq (U_k,V_k) (1j<kM)(1 \le j < k \le M)

从任何一个格子出发,经过若干条边,可以到达任意其他格子

字符串 SS 长度为 NN 且仅包含 0011

1XpN1 \le X_p \le N (1pK)(1 \le p \le K)

N,M,KN, M, K 为整数

Uj,VjU_j, V_j 为整数 (1jM)(1 \le j \le M)

XpX_p 为整数 (1pK)(1 \le p \le K)

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

col
1 没有停止格 3
2 恰好有一个停止格 7
3 恰好有两个停止格
4 N,M,K3,000N, M, K \le 3,000 19
5 K2K \le 2 23
6 K100K \le 100 9
7 N,M,K30,000N, M, K \le 30,000 23
8 无附加限制 9