QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓

#12604. 朱大师与二叉树

Statistiques

有一天,Master Zhu 发明了一个有趣的游戏,他将其命名为“树制造者”(Tree Maker)。在这个游戏中,所有的树都是二叉树。

最初,有一棵只有一个顶点的树,且光标位于该顶点上。为了构建这棵树,玩家可以控制光标执行以下五种操作:

  • “0”:跳转到当前顶点的父节点(该节点必须存在)。
  • “1”:跳转到当前顶点的左孩子(该节点必须存在)。
  • “2”:跳转到当前顶点的右孩子(该节点必须存在)。
  • “3 $x$”:生成一棵具有 $x$ 个顶点的任意二叉树,并将其作为当前顶点的左子树(执行此操作前,当前顶点必须没有左孩子)。
  • “4 $x$”:生成一棵具有 $x$ 个顶点的任意二叉树,并将其作为当前顶点的右子树(执行此操作前,当前顶点必须没有右孩子)。

当执行操作时,日志系统会记录下该操作。

Rin 昨天玩了一整天这个游戏。作为一个健忘的人,尽管 Rin 在玩的时候知道树的形状,但睡了一觉后他忘记了。他现在拥有的只有操作日志。Rin 想知道:根据这份日志,昨天操作结束后,这棵树可能有多少种不同的形状?

你能回答这个问题吗?由于答案可能非常大,你只需要求出其对 $10^9 + 7$ 取模的结果。

输入格式

第一行包含一个整数 $n$,表示日志的行数 ($1 \le n \le 500$)。 接下来 $n$ 行是日志内容。日志格式如上所述。

保证对于每种类型 3 和 4 的操作,整数 $x$ 均为正数,且树中的顶点总数永远不会超过 500。你还可以假设至少存在一棵树使得给定的日志对该树是有效的。

输出格式

输出一行,包含一个整数:Rin 的问题的答案对 $10^9 + 7$ 取模的结果。

样例

样例输入 1

2
3 3
4 3

样例输出 1

25

样例输入 2

2
3 3
1

样例输出 2

5

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.