AT_agc064_b [AGC064B] Red and Blue Spanning Tree

题目描述

有一个包含 $N$ 个顶点、$M$ 条边的连通无向图 $G$。对于 $i=1,2,\ldots,M$,第 $i$ 条边连接顶点 $a_i$ 和 $b_i$,如果 $c_i=$ `R`,则该边为红色;如果 $c_i=$ `B`,则该边为蓝色。 请判断是否存在满足以下条件的 $G$ 的一棵生成树。如果存在,请给出其中一棵。 - 对于所有 $i=1,2,\ldots,N$, - 如果 $s_i=$ `R`,则顶点 $i$ 至少有一条红色的边作为端点。 - 如果 $s_i=$ `B`,则顶点 $i$ 至少有一条蓝色的边作为端点。

输入格式

输入通过标准输入按以下格式给出。 > $N$ $M$ > $a_1$ $b_1$ $c_1$ > $\vdots$ > $a_M$ $b_M$ $c_M$ > $s_1\ s_2\ \ldots\ s_N$

输出格式

如果不存在满足条件的 $G$ 的生成树,输出 `No`。 ``` No ``` 如果存在,输出如下格式: > Yes $t_1$ $t_2$ $\ldots$ $t_{N-1}$ 其中 $t_i$ 表示生成树中第 $i$ 条边在 $G$ 中的编号。 如果存在多种满足条件的生成树,输出其中任意一种均可。

说明/提示

### 限制条件 - $2 \leq N \leq 2 \times 10^5$ - $N-1 \leq M \leq 2 \times 10^5$ - $1 \leq a_i < b_i \leq N$ - $c_i$ 为 `R` 或 `B` - 若 $i \neq j$,则 $(a_i, b_i, c_i) \neq (a_j, b_j, c_j)$ - 给定的图是连通的 - $s_i$ 为 `R` 或 `B` - $N, M, a_i, b_i$ 均为整数 ### 样例解释 1 由 $G$ 的第 1、2 条边组成的生成树满足条件,具体如下: - $s_1=$ `R`,因此对于 $i=1$,要求顶点 1 至少有一条红色的边作为端点。第 1 条边满足此条件。 - $s_2=$ `R`,因此对于 $i=2$,要求顶点 2 至少有一条红色的边作为端点。第 1 条边满足此条件。 - $s_3=$ `B`,因此对于 $i=3$,要求顶点 3 至少有一条蓝色的边作为端点。第 2 条边满足此条件。 由 ChatGPT 4.1 翻译