AT_arc183_d.[ARC183D] Keep Perfectly Matched

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

有一棵包含 NN 个顶点的树,顶点编号为 11 到 NN。第 ii 条边连接顶点 AiA_i 和顶点 BiB_i。这里 NN 是偶数,并且这棵树存在一个完全匹配。具体来说,对于每个 ii(1≤i≤N/21 \leq i \leq N/2),都有 Ai=i×2−1,Bi=i×2A_i = i \times 2 - 1, B_i = i \times 2。

你需要进行如下操作共 N/2N/2 次:

  • 每次选择两个叶子(度数恰好为 11 的顶点),并将它们从树中删除。此时,删除后的树也必须仍然存在完全匹配。注意,在本题中,顶点数为 00 的情况也视为一棵树。

对于每次操作,其得分定义为“所选的两个顶点之间的距离(即连接这两个顶点的简单路径上的边数)”。

请给出一种操作顺序,使得总得分最大。可以证明,在本题的约束下,总能完成 N/2N/2 次操作。

输入格式

输入从标准输入读入,格式如下:

NN A1A_1 B1B_1 A2A_2 B2B_2 ⋮\vdots AN−1A_{N-1} BN−1B_{N-1}

输出格式

请按如下格式输出答案:

X1X_1 Y1Y_1 X2X_2 Y2Y_2 ⋮\vdots XN/2X_{N/2} YN/2Y_{N/2}

其中,Xi,YiX_i, Y_i 表示第 ii 次操作中选择的两个顶点。如果有多种方案,输出任意一种均可。

输入输出样例

  • 输入#1

    4
    1 2
    3 4
    2 3

    输出#1

    4 1
    2 3
  • 输入#2

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

    输出#2

    4 8
    7 6
    5 3
    2 1
  • 输入#3

    14
    1 2
    3 4
    5 6
    7 8
    9 10
    11 12
    13 14
    2 8
    4 11
    5 12
    7 13
    11 14
    9 13

    输出#3

    1 6
    5 2
    8 12
    3 7
    10 4
    11 9
    13 14
  • 输入#4

    20
    1 2
    3 4
    5 6
    7 8
    9 10
    11 12
    13 14
    15 16
    17 18
    19 20
    8 10
    16 18
    16 19
    5 9
    10 17
    2 13
    7 14
    3 7
    3 12

    输出#4

    6 1
    2 15
    20 13
    14 19
    16 4
    11 18
    17 12
    3 5
    9 7
    8 10

说明/提示

限制条件

  • 2≤N≤2500002 \leq N \leq 250000
  • NN 是偶数
  • 1≤Ai<Bi≤N1 \leq A_i < B_i \leq N(1≤i≤N−11 \leq i \leq N-1)
  • Ai=i×2−1,Bi=i×2A_i = i \times 2 - 1, B_i = i \times 2(1≤i≤N/21 \leq i \leq N/2)
  • 给定的图是一棵树
  • 输入的所有数值均为整数

样例解释 1

输出样例的操作顺序如下:

  • 第 11 次操作:删除顶点 4,14, 1。剩下的树包含顶点 2,32, 3,仍然存在完全匹配。该操作的得分为 33。
  • 第 22 次操作:删除顶点 2,32, 3。剩下的树为 00 个顶点,仍然存在完全匹配。该操作的得分为 11。
  • 总得分为 3+1=43+1=4。无法使总得分超过 44,因此该输出是正确的。

由 ChatGPT 4.1 翻译

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

首页