CF1975D.Paint the Tree

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

378QAQ 有一棵包含 nn 个顶点的树。初始时,所有顶点都是白色的。

树上有两个棋子,分别叫做 PAP_A 和 PBP_B。PAP_A 和 PBP_B 分别初始位于顶点 aa 和 bb。每一步,378QAQ 会按如下顺序进行操作:

  1. 将 PAP_A 移动到相邻的一个顶点。如果目标顶点是白色,则将其染成红色。
  2. 将 PBP_B 移动到相邻的一个顶点。如果目标顶点是红色,则将其染成蓝色。

初始时,顶点 aa 被染成红色。如果 a=ba=b,则顶点 aa 被染成蓝色。注意,每一步两个棋子都必须移动。两个棋子可以同时位于同一个顶点。

378QAQ 想知道,将所有顶点都染成蓝色所需的最少步数。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤1041\leq t\leq 10^4),表示测试用例的数量。

每组测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051\leq n\leq 2\cdot 10^5)。

第二行包含两个整数 aa 和 bb(1≤a,b≤n1\leq a,b\leq n)。

接下来 n−1n-1 行,每行包含两个整数 xix_i 和 yiy_i(1≤xi,yi≤n1\leq x_i,y_i\leq n),表示在顶点 xix_i 和 yiy_i 之间有一条边。保证这些边构成一棵树。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot 10^5。

输出格式

对于每组测试用例,输出将所有顶点染成蓝色所需的最少步数。

输入输出样例

  • 输入#1

    3
    2
    1 2
    1 2
    5
    1 2
    1 2
    1 3
    1 4
    1 5
    8
    5 4
    7 1
    1 5
    1 8
    8 3
    7 2
    8 6
    3 4

    输出#1

    2
    8
    13

说明/提示

在第一个测试用例中,378QAQ 可以按如下顺序将所有顶点染成蓝色:

  • 初始时,PAP_A 位于顶点 11,PBP_B 位于顶点 22。顶点 11 被染成红色,顶点 22 是白色。
  • 378QAQ 将 PAP_A 移动到顶点 22 并将其染成红色。然后将 PBP_B 移动到顶点 11 并将其染成蓝色。
  • 378QAQ 将 PAP_A 移动到顶点 11。然后将 PBP_B 移动到顶点 22 并将其染成蓝色。

由 ChatGPT 4.1 翻译

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

首页