QOJ.ac

QOJ

时间限制: 2 s 内存限制: 512 MB 总分: 100

#12903. 卡特兰组合对象

统计

Andrew 喜欢卡特兰数,也喜欢开玩笑。

他是一位经验丰富的出题人,为训练营准备了许多比赛。在每一场比赛中,他都会准备一道题目,其输入为一个整数,输出为一个整数。对于输入 $0, 1, 2, 3, 4, 5$,对应的答案分别为 $1, 1, 2, 5, 14, 42$。然而,对于更大的输入,答案并不总是与对应的卡特兰数相等。

Andrew 已经准备了太多的比赛,以至于他缺乏具有这种性质的好题。因此,他决定自动化生成此类题目的过程。他将计数特定性质的组合对象视为生成好题的良好来源。Andrew 选择了 $k$ 作为输入 $6$ 的期望答案,并希望找到一种组合对象的描述,使得权重为 $0, 1, 2, 3, 4, 5, 6$ 的对象数量分别为 $1, 1, 2, 5, 14, 42, k$。

Andrew 使用以下方式构造组合对象。

基础集合 $B$ 由一个权重为 $1$ 的单位对象 $u$ 组成。每个构造出的对象 $x$ 都有一定的权重 $w(x)$。如果对象是由一个或多个其他对象构造而成的,则其权重等于这些对象权重的总和。

设 $X$ 为某些组合对象的集合。考虑以下构造新集合的方法:

集合 $L(X)$ 包含所有有限长度的列表,其中每个元素都属于 $X$ 且具有正权重。例如,$L(B)$ 包含 $[]$, $[u]$, $[u, u]$, $[u, u, u]$ 等。类似地,$L(L(B))$ 包含 $[]$, $[[u]]$, $[[u], [u]]$, $[[u, u], [u]]$, $[[u], [u, u]]$ 等。注意,最后两个列表是不同的:列表中元素的顺序很重要。还要注意 $[[]]$ 不是 $L(L(B))$ 中的有效列表,因为列表中只允许正权重的对象,而 $[]$ 的权重为 $0$。

集合 $S(X)$ 包含所有有限大小的多重集,其中每个元素都属于 $X$ 且具有正权重。例如,$S(B)$ 包含 $\{\}$, $\{u\}$, $\{u, u\}$, $\{u, u, u\}$ 等。另一个例子:$S(L(B))$ 包含诸如 $\{[u]\}$, $\{[u], [u]\}$ 之类的集合。注意,多重集可以包含多个相同的对象。另一个例子:$\{[u], [u, u]\}$,注意在多重集中顺序无关紧要,因此这与 $\{[u, u], [u]\}$ 相同。

集合 $C(X)$ 包含所有有限长度的循环,其中每个元素都属于 $X$ 且具有正权重。如果一个循环可以通过循环移位转换为另一个,则认为这两个循环相等。例如 $C(L(B))$ 包含 $([u], [u, u], [u, u, u])$。注意,该对象与 $([u, u], [u, u, u], [u])$ 相同,但与 $([u, u, u], [u, u], [u])$ 不同。

同样,列表、集合或循环的权重是其元素权重的总和。例如, $([u], [u, u], [u, u, u])$ 的权重为 $6$。

构造新对象类的最后一种方法是配对。如果 $X$ 和 $Y$ 是对象集合,$P(X, Y)$ 是有序对象对的集合,其中第一个分量来自 $X$,第二个分量来自 $Y$。例如,$P(S(B), L(B))$ 包含 $\{u, u\}, [u, u, u]$ 或 $\{\}, [u]$。注意,与列表、集合或循环不同,对可以包含权重为 $0$ 的分量。

给定 $k$,请找到一个组合对象集合的描述,该集合包含 $1$ 个权重为 $0$ 的元素,$1$ 个权重为 $1$ 的元素,$2$ 个权重为 $2$ 的元素,$5$ 个权重为 $3$ 的元素,$14$ 个权重为 $4$ 的元素,$42$ 个权重为 $5$ 的元素以及 $k$ 个权重为 $6$ 的元素。

输入格式

输入文件包含多个测试用例。 每个测试用例包含一个单独的整数 $k$ ($120 \le k \le 140$)。 输入以一行 $n = 0$ 结束。

输出格式

对于每个测试用例,请在单独的一行上打印题目描述中所述格式的组合对象集合的描述。你的描述长度最多为 $2000$。不要打印空格。

样例

输入 1

125
0

输出 1

L(P(L(P(L(L(B)),B)),P(B,L(P(P(B,B),P(B,B))))))

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.