AT_arc143_e.[ARC143E] Reversi
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一棵包含 N 个顶点的树。每个顶点编号为 1 到 N,第 i 条边连接顶点 Ai 和顶点 Bi。此外,每个顶点上都放置有一个“黑白棋”的棋子。每个顶点上的棋子的状态由字符串 S 给出,S 的第 i 个字符为 B 时,表示顶点 i 上的棋子正面为黑色;为 W 时,表示正面为白色。
请判断是否可以通过以下操作恰好 N 次,将所有顶点上的棋子全部移除。如果可以,请在所有可能的选择顶点顺序 P1,P2,…,PN 中,输出字典序最小的一个。
- 每次操作可以选择一个正面为白色的棋子所在的顶点,将该顶点上的棋子移除。然后,将与该顶点相邻的所有顶点上的棋子翻面。
关于“黑白棋”的棋子:棋子一面为黑色,一面为白色,翻面后正反面颜色互换。
关于数列的字典序:给定两个不同的数列 S 和 T,判断大小的算法如下:
记 S 的第 i 个元素为 Si。若 S 字典序小于 T,记作 S<T,大于则记作 S>T。
- 取 S 和 T 中较短的长度为 L,依次比较 i=1,2,…,L 时 Si 与 Ti 是否相等。
- 若存在 Si=Ti,取最小的此类 i 为 j,比较 Sj 与 Tj,若 Sj<Tj,则 S<T,否则 S>T,算法结束。
- 若所有 i 都有 Si=Ti,则比较长度,短的字典序更小。
输入格式
输入以如下格式从标准输入读入:
N
A1 B1
⋮
AN−1 BN−1
S
输出格式
若目标无法达成,输出 -1。若可以达成,输出一行:
P1 P2 ⋯ PN
输入输出样例
输入#1
4 1 2 2 3 3 4 WBWW
输出#1
1 2 4 3
输入#2
4 1 2 2 3 3 4 BBBB
输出#2
-1
说明/提示
数据范围
- 1≤N≤2×105
- 1≤Ai,Bi≤N
- 给定的图为一棵树。
- S 是仅由
B和W组成的长度为 N 的字符串。
样例解释 2
在这种情况下,无法进行任何一次操作。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?