AT_abc437_g [ABC437G] Colorful Christmas Tree

题目描述

今年的圣诞节结束了,终于要迎来新的一年了。高桥正忙着收拾圣诞树。 圣诞树上装饰着红、蓝、绿三种颜色的灯泡。圣诞树上有 $N$ 个灯泡,它们由 $N-1$ 条丝带连接。如果把灯泡看作顶点,把彩带看作边,那么这个图就是一棵树。 灯泡的编号从 $1$ 到 $N$ ,色带的编号从 $1$ 到 $N-1$ 。色带 $i$ 连接灯泡 $u_i$ 和 $v_i$ 。如果 $c_i$ 为 `R`,则灯泡 $i$ 的初始亮度为红色;如果为 `G`,则灯泡 $i$ 的初始亮度为绿色;如果为 `B`,则灯泡 $i$ 的初始亮度为蓝色。 高桥正在考虑执行以下操作 $N-1$ 次,以移除所有灯带。 1. 在尚未移除的彩带中选择一条两端灯泡颜色不同的彩带,并移除这条彩带。 2. 假设灯泡 $u$ 和 $v$ 是被移除的色带两端的灯泡。对于每个灯泡 $u$ 和 $v$ ,根据以下规则改变它们点亮的颜色: - 如果点亮的是红色,则点亮绿色。 - 如果点亮的是绿色,则点亮蓝色。 - 如果原为蓝色,则改为红色。 确定高桥是否可能通过重复此操作来移除所有丝带。如果可能,请输出一个这样的方法。 给你 $T$ 个测试用例。请逐一解决。

输入格式

输入内容由标准输入法提供,格式如下: >$T\\$ $\mathrm{case}_1\\$ $\mathrm{case}_2\\$ $\vdots\\$ $\mathrm{case}_T$ 每个测试用例的格式如下: >$N\\$ $c_1\ c_2\ \ldots \ c_N\\$ $u_1$ $v_1\\$ $u_2$ $v_2\\$ $\vdots\\$ $u_{N-1}$ $v_{N-1}$

输出格式

按以下格式依次输出 $\mathrm{case}_1, \mathrm{case}_2, \ldots, \mathrm{case}_T$ 的答案。 如果无法去除所有色带,则输出 `No`。 如果可以,让 $e_i$ 成为在第 $i$ 次操作中移除的色带编号,并输出: >`Yes`$\\$ $e_1$ $e_2$ $\ldots$ $e_{N-1}$ $(e_1, e_2, \ldots, e_{N-1})$ 必须是 $(1, 2, \ldots, N-1)$ 的排列。 如果有多个解法,则任何一个都将被视为正确解法。

说明/提示

#### 数据范围 - $1\leq T\leq 20000$。 - $2\leq N\leq 2000$。 - $c_i$ 是 `R`、`G` 或 `B`。 - $1\leq u_i,v_i\leq N$。 - 如果把灯泡看作顶点,把彩带看作边,那么给定的图形就是一棵树。 - $T,N,u_i,v_i$ 是整数。 - 一个输入文件中 $N^2$ 的总和最多为 $2000^2$ 。 #### 样例解释 例如,对于第一个测试用例,可以通过执行以下操作移除所有色带: - 最初,灯泡的颜色依次为绿、蓝、蓝、红(从灯泡 $1$ 开始)。 - 移除色带 $1$ 。移除后,灯泡的颜色依次为蓝、红、蓝、红。 - 取下色带 $3$ 。取下后,灯泡的颜色依次为红、红、蓝、绿。 - 取下色带 $2$ 。取下后,灯泡的颜色依次为绿、红、红、绿。 满足条件的 $(e_1, e_2, e_3)$ 为 $(1, 3, 2)$ 和 $(2, 3, 1)$ ,任选其一均可视为正确。 对于第二个测试用例,无论如何操作都不可能移除所有灯带。