luogu#P14998. [Nordic OI 2019] Distance Code

    ID: 15073 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>2019Special Judge通信题NordicOI(北欧)

[Nordic OI 2019] Distance Code

题目描述

你的任务是创建一个可以两种模式使用的程序:作为编码器和作为解码器

编码器会得到一棵包含 nn 个节点的树,并逐步移除树中的所有节点。在每一步中,编码器可以从当前树中移除任意一个叶子节点。

解码器会得到编码器依次移除节点时,各对连续被移除节点之间的距离列表,它必须据此重建树的原始结构。

解码器需要创建任意一棵与原始树具有相同结构的树(更准确地说,它必须与原始树同构)。

输入格式

  • 第一行有一个整数 tt,其值为 1(编码器)或 2(解码器)。
  • 第二行有一个整数 nn:树中节点的数量。节点编号为 1,2,,n1, 2, \ldots, n
  • 如果 t=1t = 1,接下来有 n1n - 1 行描述这棵树。每行包含两个整数 aabb:表示节点 aabb 之间有一条边。
  • 如果 t=2t = 2,则只有一行,包含 n1n - 1 个整数:依次移除的节点之间的距离。

输出格式

  • 如果 t=1t = 1,编码器必须输出一个 1,2,,n1, 2, \ldots, n 的排列:表示节点从树中被移除的顺序。
  • 如果 t=2t = 2,解码器必须输出 n1n - 1 行来描述树的结构。
1
3
1 2
2 3
1 3 2
2
3
2 1
2 3
1 3

提示

子任务 1(21 分)

  • 2n102 \leq n \leq 10

子任务 2(47 分)

  • 2n5002 \leq n \leq 500

子任务 3(32 分)

  • 2n1052 \leq n \leq 10^5

翻译由 DeepSeek V3 完成