#P16972. [XRCOI Round 2] D. 树上的树
[XRCOI Round 2] D. 树上的树
背景
Kipfel 和 Zn 在玩一个名叫“树上的树”的游戏。
题目描述
游戏的具体流程如下:
-
Zn 给 Kipfel 一共 颗无标号有根有序树 ,分别为 ,这 颗无标号有根有序树的第 颗由 个节点组成,且拥有一个属性 。
-
Kipfel 造出一颗有 个节点的无标号有根有序树 ,并将 再交给 Zn。
-
Zn 从 中选择一个打上标记的节点集合 ,使得 中任意两个节点互不相同( 可以为空集)。游戏结束。
Kipfel 是只笨猫,所以它会从所有可能的无标号有根有序树 中等概率地选出一棵作为第二步的结果。同理,Zn 也会从第三步中所有可能选择的 中等概率地选出一个作为第三步的结果。
规定 Zn 在第三步中选择的 是“好的方案”,当且仅当对于 中每个子树 ,满足下列的至少一个条件:
- 不与 中任何一颗无标号有根有序树同构。
- 若 与 同构,则需满足 (即 中至少有 个节点被标记)。其中 表示 的节点集合。
Zn 已经完成了游戏的第一步,但是游戏的第二步和第三步仍未进行。你需要求出第三步中 Zn 选择了 最小的“好的方案”的概率,并将答案对 取模。注意“ 最小”的条件是对于第二步选择的 而言的,不是对于所有可能的 而言的。
::::info[ 无标号有根有序树]
- 无标号有根有序树:无标号的、每个节点的每个儿子间有顺序的有根树。
- 令 表示无标号有根有序树 的节点个数; 表示无标号有根有序树 的根的儿子个数; 表示以无标号有根有序树 的根的第 个儿子为根的子树。
- 判断两颗无标号有根有序树 是否同构的方法为:
- 若 ,则 与 同构。
- 否则,若 且对于任何 都满足 与 同构,则 与 同构。 ::::
为了方便描述,我们在输入格式、样例解释中给每个节点赋予了一个编号,并钦定编号为 的节点为根。实际无标号有根有序树的节点是没有编号的。
输入格式
第一行包含两个非负整数 ,分别表示 的节点数、Zn 给出的无标号有根有序树的个数。
接下来对于 Zn 给出的每一颗无标号有根有序树 :
- 第一行包含两个正整数 。
- 接下来的 行:
- 假设当前行是这 行中的第 行。首先输入一个非负整数 表示无标号有根有序树 中节点 的儿子个数。
- 紧接着在同一行输入 个正整数,其中第 个正整数表示节点 的第 个儿子的编号。
输出格式
第一行包含一个非负整数,表示第三步中 Zn 选择了 最小的“好的方案”的概率。注意将答案对 取模。
4 2
2 1
1 2
0
3 2
2 2 3
0
0
873463809
2 2
2 2
1 2
0
2 1
1 2
0
748683265
5 3
2 1
1 2
0
4 4
2 2 3
1 4
0
0
3 2
1 2
1 3
0
938082305
7 3
4 3
2 2 4
1 3
0
0
2 1
1 2
0
6 5
2 2 3
0
2 4 6
1 5
0
0
344387212
4 3
1 1
0
2 2
1 2
0
4 2
2 2 3
0
1 4
0
935854081
提示
【样例 1 解释】
设 表示无标号有根有序树 的所有“好的方案”中 的最小值。并且规定下图中每个父节点的儿子按照原树上的顺序从左到右排列。
这组样例中,Zn 给出的 颗无标号有根有序树 的结构如图 所示。

Kipfel 可能造出的无标号有根有序树 如图 所示。其中, 值分别为 。

对于图 中 两棵树,一种可能的满足 的“好的方案”(即 最小的“好的方案”)如图 所示。

满足 的“好的方案”分别有 种。第二步和第三步一共有 种可能的方案,因此第一组样例的答案为 。
【样例 2 解释】
这组样例的答案是 。
【数据范围】
本题采用捆绑测试。
其中子任务 为样例,记 分,时间限制为 秒。
::cute-table{tuack}
| Subtask 编号 | | | | | |得分 | 时间限制 |
| :----------: | :-----: | :-----: | :-----: | :--: | :------: | :------: | :------: |
| | | | | | | | 秒 |
| | | | | < | ^ | | 秒 |
| | | | | < | | | 秒 |
| | | ^ | | < | | | 秒 |
| | | < | < | < | | | 秒 |
| | | < | < | < | ^ | | 秒 |
| | ^ | ^ | ^ | ^ | | | 秒 |
对于 的数据:保证 $1 \le n, m_i\le 400, 0 \le k\le 400, \sum_{i=1}^{k}m_i \le 400, 1\le C_i \le m_i,0\le s_j \le m_i$,数据保证每一颗给出的树都是合法的无标号有根有序树。