loj#P4799. 「RMI 2023」AA Tree
「RMI 2023」AA Tree
题目描述
题目译自 Romanian Master of Informatics 2023 Day1 T1 「AA Tree」
由于原始问题中对二叉搜索树的定义有误,本题描述略有调整。
AA 树是一种特殊的二叉搜索树,每个节点都拥有一个值和一个层级。值的排列遵循普通的二叉搜索树规则:
- 每个左子节点(以及左子树中的所有节点)的值都小于等于其父节点的值。
- 每个右子节点(以及右子树中的所有节点)的值都大于等于其父节点的值。
层级则需满足以下条件:
- 所有叶子节点的层级为 。
- 每个左子节点的层级比其父节点小 。
- 每个右子节点的层级等于或比其父节点小 。
- 每个右孙节点的层级必须严格小于其祖父节点的层级。
- 层级大于 的每个节点必须有两个子节点。
下面展示了五棵AA 树的样例,分别包含 、、、 和 个节点。为了更清晰地展示,与父节点层级相同的右子节点用红色标出。
给定两个数字 和 ,请你计算将 、、...、 这 个值排列成一棵AA 树,且恰好有 个层级的方法有多少种?
输入格式
输入只有一行,包含两个用空格分隔的整数 和 。
输出格式
输出排列方法的数量,对 取模。
5 2
2
两种可能的排列方式如上图中的第 和第 棵树所示。
442 6
896944318
7133 9
980381648
数据范围与提示
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
子任务 | 分值 | 附加限制 |
---|---|---|
无附加限制 |