#B. 树的计数(tree)

    传统题 1000ms 256MiB

树的计数(tree)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

我们都知道二叉树有多种形态,对于一系列的二叉树,我们用下列规则对其进行编号:

  1. 空二叉树编号为 00;

  2. 仅含一个结点的二叉树编号为 11;

  3. 结点数为 kk 的二叉树的编号小于结点数为 k+1k+1 的二叉树的编号;

  4. 对于结点数量相同的二叉树 T1,T2T1,T2,如果 T1T1 的左子树编号大于 T2T2 的左子树编号或者 T1,T2T1 ,T2 的左子树编号相同但 T1T1 的右子树编号大于 T2T2 的右子树编号,那么二叉树 T1T1 的编号大于二叉树 T2T2 的编号。

例如,按照上述规则进行编号的前 10 棵二叉树如下图所示:

  • 其中编号为 33 的二叉树左子树是仅含一个节点的二叉树,编号为 22 的二叉树左子树为空,满足条件 44 中左子树编号大的整棵树编号就大。

现在给你一个正整数 nn,表示二叉树的编号,让你画出编号为 nn 的二叉树的形状。

输入格式

输入仅包含一行一个正整数 nn,表示二叉树的编号。

输出格式

输出仅一行,表示编号为 nn 的二叉树的形状。

二叉树形状用下列字符串表示:

  1. 如果是仅包含一个结点的二叉树,则直接输出 X
  2. 如果二叉树的左、右子树编号分别为 LLRR,已知 LLRR 的输出形式分别为 LL'RR',那么输出 (L')X(R'),让左子树为空时,输出 X(R'),当右子树为空时,输出 (L')X
5
X((X)X)
20
((X)X(X))X
237074288
X(((((X)X)X)X(X))X((((((X)X(((X(X))X)X))X)X)X(X))X))

提示

【样例 1 解释】

编号为 55 的二叉树见题目图,根结点只有右子树,所以为 X(R'),右子树的根节点只有左子树,所以 R' 为 (X)X,整棵树为 X((X)X)。

【数据范围】

对于 30%30\% 的数据,满足 1n50001\le n \le 5000

对于 100%100\% 的数据,满足 1n5×1081\le n \le 5\times 10^8

2024.9.8 城阳 - 提高组 - 比赛

未参加
状态
已结束
规则
OI
题目
4
开始于
2024-9-8 8:30
结束于
2024-9-11 22:30
持续时间
3 小时
主持人
参赛人数
26