AT_abc429_e [ABC429E] Hit and Away

题目描述

给定一个简单连通无向图 $G$,有 $N$ 个顶点和 $M$ 条边。 图中的顶点及边分别编号为 $1,2,\ldots,N$ 和 $1,2,\ldots,M$。第 $i$ 条边连接顶点 $U_i$ 和 $V_i$。 你可以在时间 $1$ 内在一条边连接的两个顶点之间双向移动。 此外,每个顶点要么是安全的,要么是危险的,这一状态由长度为 $N$ 的字符串 $S$ 给出,字符串由 `S` 和 `D` 组成。 具体地,当 $S$ 的第 $i$ 个字符($1 \leq i \leq N$)为 `S` 时,第 $i$ 个顶点是安全顶点;为 `D` 时,该顶点是危险顶点。 保证至少有两个安全顶点,且至少有一个危险顶点。 对于每个危险顶点 $v$,求以下数值: > 从某一个安全顶点出发,经过 $v$,再移动到另一个**不同于出发点**的安全顶点的最小可能时间。

输入格式

输入以如下格式从标准输入给出: > $N$ $M$ > $U_1$ $V_1$ > $U_2$ $V_2$ > $\vdots$ > $U_M$ $V_M$ > $S$

输出格式

设 $G$ 中危险顶点总数为 $K$,输出 $K$ 行。 第 $i$ 行($1\leq i\leq K$)输出按照顶点编号升序排列的第 $i$ 个危险顶点的答案。

说明/提示

### 样例解释 1 危险顶点按编号升序分别为 $3$ 和 $4$。 对于顶点 $3$,从顶点 $1\to 3\to 2$(例如)可以满足条件。 所需时间为 $2$,且这是最小值。 因此,第 $1$ 行输出 $2$。 对于顶点 $4$,从顶点 $1\to 3\to 4\to 5$(例如)可以满足条件。 所需时间为 $3$,且不存在比 $3$ 更小的方案。 因此,第 $2$ 行输出 $3$。 ### 样例解释 2 危险顶点是顶点 $3$。 从顶点 $1\to 2\to 3\to 2$(例如)可以满足条件。 所需时间为 $3$,且这是最小值。 注意,从顶点 $2\to 3\to 2$ 等方案不满足“终点是与起点不同的安全顶点”的条件。 # 数据范围 - $3\leq N\leq 2\times 10^5$ - $N-1\leq M\leq 2\times 10^5$ - $1\leq U_i,V_i\leq N$ - $U_i\neq V_i$ - 如果 $i\neq j$,则 $\{U_i,V_i\}\neq \{U_j,V_j\}$。 - $S$ 是由 `S` 和 `D` 组成的长度为 $N$ 的字符串。 - $N,M,U_i,V_i$ 均为整数。 - $G$ 是连通图。 - 至少有两个安全顶点。 - 至少有一个危险顶点。 由 ChatGPT 5 翻译