CF2042E.Vertex Pairs
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 2n 个顶点组成的树。回想一下,树是一个没有环的连通无向图。每个顶点上都写了一个从 1 到 n 的整数。从 1 到 n 的每个值都恰好写在两个不同的顶点上。每个顶点也有成本,顶点 i 成本 $ 2^i $。
你需要选择树的一个顶点子集,如下所示:
- 子集是连通的;也就是说,从子集中的每个顶点,只通过子集中的顶点可达子集中的每个其他顶点;
- 从 $ 1 $ 到 $ n $ 的每个值都至少写在子集中的一个顶点上。
在所有这样的子集中,您需要找到其中顶点的总代价最小的子集。注意,您不需要最小化子集中的顶点数量。
输入格式
第一行包含一个整数 $ n $ ($ 1 \le n \le 2 \cdot 10^5 $)。
第二行包含 $ 2n $ 个整数 $ a_1, a_2, \dots, a_{2n} $ ($ 1 \le a_i \le n $)。从 $ 1 $ 到 $ n $ 的每个值恰好出现两次。
接下来的 $ 2n-1 $ 行中每行包含两个整数 $ v $ 和 $ u $ ($ 1 \le v, u \le 2n $)——树的边。这些边构成了一棵有效的树。
输出格式
在第一行中,打印一个整数 $ k $ ——子集中的顶点数。
在第二行中,打印从 $ 1 $ 到 $ 2n $ 的 $ k $ 个不同整数——所选子集中顶点的索引。顶点可以以任意顺序打印。
输入输出样例
输入#1
3 1 1 3 2 3 2 4 2 1 6 6 2 6 3 2 5
输出#1
3 2 4 5
输入#2
3 2 3 1 3 2 1 6 4 2 4 5 2 3 6 3 1
输出#2
4 1 3 4 6
输入#3
6 5 2 3 4 6 4 2 5 6 1 1 3 10 8 2 10 12 7 4 10 5 9 6 2 1 9 3 4 12 6 11 5 4 5
输出#3
6 2 3 4 5 8 10
说明/提示
null
输入解题思路,AI测评打分。不知道怎么写?