luogu#P14998. [Nordic OI 2019] Distance Code
[Nordic OI 2019] Distance Code
题目描述
你的任务是创建一个可以两种模式使用的程序:作为编码器和作为解码器。
编码器会得到一棵包含 个节点的树,并逐步移除树中的所有节点。在每一步中,编码器可以从当前树中移除任意一个叶子节点。
解码器会得到编码器依次移除节点时,各对连续被移除节点之间的距离列表,它必须据此重建树的原始结构。
解码器需要创建任意一棵与原始树具有相同结构的树(更准确地说,它必须与原始树同构)。
输入格式
- 第一行有一个整数 ,其值为 1(编码器)或 2(解码器)。
- 第二行有一个整数 :树中节点的数量。节点编号为 。
- 如果 ,接下来有 行描述这棵树。每行包含两个整数 和 :表示节点 和 之间有一条边。
- 如果 ,则只有一行,包含 个整数:依次移除的节点之间的距离。
输出格式
- 如果 ,编码器必须输出一个 的排列:表示节点从树中被移除的顺序。
- 如果 ,解码器必须输出 行来描述树的结构。
1
3
1 2
2 3
1 3 2
2
3
2 1
2 3
1 3
提示
子任务 1(21 分)
子任务 2(47 分)
子任务 3(32 分)
翻译由 DeepSeek V3 完成