AT_abc437_g.[ABC437G] Colorful Christmas Tree

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

今年的圣诞节结束了,终于要迎来新的一年了。高桥正忙着收拾圣诞树。

圣诞树上装饰着红、蓝、绿三种颜色的灯泡。圣诞树上有 NN 个灯泡,它们由 N−1N-1 条丝带连接。如果把灯泡看作顶点,把彩带看作边,那么这个图就是一棵树。

灯泡的编号从 11 到 NN ,色带的编号从 11 到 N−1N-1 。色带 ii 连接灯泡 uiu_i 和 viv_i 。如果 cic_i 为 R,则灯泡 ii 的初始亮度为红色;如果为 G,则灯泡 ii 的初始亮度为绿色;如果为 B,则灯泡 ii 的初始亮度为蓝色。

高桥正在考虑执行以下操作 N−1N-1 次,以移除所有灯带。

  1. 在尚未移除的彩带中选择一条两端灯泡颜色不同的彩带,并移除这条彩带。
  2. 假设灯泡 uu 和 vv 是被移除的色带两端的灯泡。对于每个灯泡 uu 和 vv ,根据以下规则改变它们点亮的颜色:
    • 如果点亮的是红色,则点亮绿色。
    • 如果点亮的是绿色,则点亮蓝色。
    • 如果原为蓝色,则改为红色。

确定高桥是否可能通过重复此操作来移除所有丝带。如果可能,请输出一个这样的方法。

给你 TT 个测试用例。请逐一解决。

输入格式

输入内容由标准输入法提供,格式如下:

TT\\
case1\mathrm{case}_1\\
case2\mathrm{case}_2\\
⋮\vdots\\
caseT\mathrm{case}_T

每个测试用例的格式如下:

NN\\
c1 c2 … cNc_1\ c_2\ \ldots \ c_N\\
u1u_1 v1v_1\\
u2u_2 v2v_2\\
⋮\vdots\\
uN−1u_{N-1} vN−1v_{N-1}

输出格式

按以下格式依次输出 case1,case2,…,caseT\mathrm{case}_1, \mathrm{case}_2, \ldots, \mathrm{case}_T 的答案。

如果无法去除所有色带,则输出 No。

如果可以,让 eie_i 成为在第 ii 次操作中移除的色带编号,并输出:

Yes\\
e1e_1 e2e_2 …\ldots eN−1e_{N-1}

(e1,e2,…,eN−1)(e_1, e_2, \ldots, e_{N-1}) 必须是 (1,2,…,N−1)(1, 2, \ldots, 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≤200001\leq T\leq 20000。
  • 2≤N≤20002\leq N\leq 2000。
  • cic_i 是 R、G 或 B。
  • 1≤ui,vi≤N1\leq u_i,v_i\leq N。
  • 如果把灯泡看作顶点,把彩带看作边,那么给定的图形就是一棵树。
  • T,N,ui,viT,N,u_i,v_i 是整数。
  • 一个输入文件中 N2N^2 的总和最多为 200022000^2 。

样例解释

例如,对于第一个测试用例,可以通过执行以下操作移除所有色带:

  • 最初,灯泡的颜色依次为绿、蓝、蓝、红(从灯泡 11 开始)。
  • 移除色带 11 。移除后,灯泡的颜色依次为蓝、红、蓝、红。
  • 取下色带 33 。取下后,灯泡的颜色依次为红、红、蓝、绿。
  • 取下色带 22 。取下后,灯泡的颜色依次为绿、红、红、绿。

满足条件的 (e1,e2,e3)(e_1, e_2, e_3) 为 (1,3,2)(1, 3, 2) 和 (2,3,1)(2, 3, 1) ,任选其一均可视为正确。

对于第二个测试用例,无论如何操作都不可能移除所有灯带。

输入解题思路,AI测评打分。不知道怎么写?

首页