#P14107. [ZJCPC 2017] Binary Tree Restoring
[ZJCPC 2017] Binary Tree Restoring
Description
给定一棵二叉树的两个深度优先搜索(DFS)序列,你能否找到一个同时满足这两个 DFS 序列的二叉树?
回顾一下,二叉树是一种每个节点最多有两个子节点的树结构,深度优先搜索是一种遍历树的方式,从根节点开始,沿着树的分支尽可能深地遍历节点,然后再回溯。
Input Format
输入包含多组测试数据。第一行为一个整数 ,表示测试数据组数。对于每一组测试数据:
第一行包含一个整数 (),表示二叉树的节点数量。
第二行包含 个整数 (,对于所有 ,),表示二叉树的第一个 DFS 序列。
第三行包含 个整数 (,对于所有 ,),表示二叉树的第二个 DFS 序列。
保证所有测试数据中 的总和不超过 ,且至少存在一种满足条件的二叉树。
温馨提示:本题数据量较大,建议使用更快的输入输出方式。例如,在 C++ 中可以使用 scanf/printf 替代 cin/cout。
Output Format
对于每一组测试数据,输出一行,包含 个整数,每两个整数之间用一个空格隔开。第 个整数表示第 个节点在所构造的二叉树中的父节点编号。如果第 个节点是树的根节点,则父节点编号输出 。如果有多组合法答案,你可以输出其中任意一种。
请注意,行末不得输出多余的空格,否则可能会导致“答案错误”的判定,因为本题为特殊判题。
2
6
3 4 2 5 1 6
3 4 5 2 1 6
3
1 2 3
1 2 3
3 4 0 3 4 1
0 1 2
Hint
由 ChatGPT 5 翻译
京公网安备 11011102002149号