AT_abc437_g.[ABC437G] Colorful Christmas Tree
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
今年的圣诞节结束了,终于要迎来新的一年了。高桥正忙着收拾圣诞树。
圣诞树上装饰着红、蓝、绿三种颜色的灯泡。圣诞树上有 N 个灯泡,它们由 N−1 条丝带连接。如果把灯泡看作顶点,把彩带看作边,那么这个图就是一棵树。
灯泡的编号从 1 到 N ,色带的编号从 1 到 N−1 。色带 i 连接灯泡 ui 和 vi 。如果 ci 为 R,则灯泡 i 的初始亮度为红色;如果为 G,则灯泡 i 的初始亮度为绿色;如果为 B,则灯泡 i 的初始亮度为蓝色。
高桥正在考虑执行以下操作 N−1 次,以移除所有灯带。
- 在尚未移除的彩带中选择一条两端灯泡颜色不同的彩带,并移除这条彩带。
- 假设灯泡 u 和 v 是被移除的色带两端的灯泡。对于每个灯泡 u 和 v ,根据以下规则改变它们点亮的颜色:
- 如果点亮的是红色,则点亮绿色。
- 如果点亮的是绿色,则点亮蓝色。
- 如果原为蓝色,则改为红色。
确定高桥是否可能通过重复此操作来移除所有丝带。如果可能,请输出一个这样的方法。
给你 T 个测试用例。请逐一解决。
输入格式
输入内容由标准输入法提供,格式如下:
T
case1
case2
⋮
caseT
每个测试用例的格式如下:
N
c1 c2 … cN
u1 v1
u2 v2
⋮
uN−1 vN−1
输出格式
按以下格式依次输出 case1,case2,…,caseT 的答案。
如果无法去除所有色带,则输出 No。
如果可以,让 ei 成为在第 i 次操作中移除的色带编号,并输出:
Yes
e1 e2 … eN−1
(e1,e2,…,eN−1) 必须是 (1,2,…,N−1) 的排列。
如果有多个解法,则任何一个都将被视为正确解法。
输入输出样例
输入#1
3 4 GBBR 1 2 1 3 1 4 3 RRR 1 2 2 3 5 RGBRG 1 2 2 3 3 4 3 5
输出#1
Yes 1 3 2 No Yes 1 4 2 3
说明/提示
数据范围
- 1≤T≤20000。
- 2≤N≤2000。
- ci 是
R、G或B。 - 1≤ui,vi≤N。
- 如果把灯泡看作顶点,把彩带看作边,那么给定的图形就是一棵树。
- T,N,ui,vi 是整数。
- 一个输入文件中 N2 的总和最多为 20002 。
样例解释
例如,对于第一个测试用例,可以通过执行以下操作移除所有色带:
- 最初,灯泡的颜色依次为绿、蓝、蓝、红(从灯泡 1 开始)。
- 移除色带 1 。移除后,灯泡的颜色依次为蓝、红、蓝、红。
- 取下色带 3 。取下后,灯泡的颜色依次为红、红、蓝、绿。
- 取下色带 2 。取下后,灯泡的颜色依次为绿、红、红、绿。
满足条件的 (e1,e2,e3) 为 (1,3,2) 和 (2,3,1) ,任选其一均可视为正确。
对于第二个测试用例,无论如何操作都不可能移除所有灯带。
输入解题思路,AI测评打分。不知道怎么写?