辰辰的多叉堆
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目背景
纵横交错二,盘根错节
题目描述
辰辰对多叉堆有自己独特的见解,多叉堆是一种树形数据结构,本题中我们只考虑小根堆,它满足除了根以外的结点,每个点的权值都不小于父亲的权值。除了叶结点,每个点有至少一个子结点。
初始时有 个结点,编号分别为 ,每个结点都是一棵以自身为根的单点树。接下来按顺序有 次操作,每次操作有以下两种:
1 x y
:选择不在同一棵树里的结点 和 ,将 所在树的根直接接在 所在树的根之下,此时 和 所在树将合并为同一棵树。2 x
:选择结点 ,设 当前所在树的结点数为 。你需要计算将 这 个数分别填入 所在树的结点中,能够产生多少种不同的多叉堆。两种堆不同当且仅当存在某个结点填入的值不同。由于答案可能很大,你只需要求出答案模 后的结果。
输入格式
第一行两个整数 ,具体含义见题目描述。
接下来 行每行可能是下面两种格式之一:
1 x' y'
:你需要通过计算 来得到真正的 和 ,输入保证 和 所在树不同。2 x'
:你需要通过计算 来得到真正的 。
其中 表示上一次 操作的输出结果 ,初始时 。
输出格式
对于每次 操作输出一行一个整数表示答案。
5 6
1 1 0
1 2 0
2 1
1 3 1
1 2 0
2 4
2
8
提示
【输入输出样例 1 说明】
第 次操作时,将 所在树的根 接在 所在树的根 下。
第 次操作时,将 所在树的根 接在 所在树的根 下。
第 次操作时, 所在树如图 ,在 中分别填入 和 可以产生 种不同的堆。
第 次操作时 ,,将 所在树的根 接在 所在树的根 下。
第 次操作 时,,,将 所在树的根 接在 所在树的根 下。
第 次操作 时,, 所在树如图 ,在 中分别填入 ,,,,,, 可以产生 种不同的堆。
【数据规模与约定】
对于 的数据,,。
对于不同测试点,我们约定
特殊性质 :存在 ,前 次操作均为 操作,之后全是 操作。
特殊性质 :对于所有输入 和 本身即是其所在树的根。
北辰OI CSP-S模拟测试(四)
- Status
- Done
- Rule
- OI
- Problem
- 4
- Start at
- 2023-10-1 8:00
- End at
- 2023-10-1 12:00
- Duration
- 4 hour(s)
- Host
- Partic.
- 0