loj#P3393. 「2020-2021 集训队作业」Game on Tree
「2020-2021 集训队作业」Game on Tree
题目描述
Aruba 和 Ball 又在玩游戏,下面将他们分别简称为 A 和 B。
给定一棵 个点的有根树,标号从 到 ,根的标号是 。每个节点的儿子数只能为 或 。将节点分成下列三类:
- :到根距离为偶数的所有非叶节点的集合,其中根到自己的距离为
- :到根距离为奇数的所有非叶节点的集合
- :叶节点的集合
而对于所有叶子节点 ,都会被分配一个二元组 。其中 和 可以看成是定义域为 的函数。
游戏开始前:
A 对于 中的每个点 ,从 的两条指向儿子的边中选择一条,将其标记为重边;
B 对于 中的每个点 ,从 的两条指向儿子的边中选择一条,将其标记为重边。
A 的选择可以看成一个定义域为 的映射函数 ; B 的选择可以看成一个定义域为 的映射函数 。
那么一个有序对 被称为一组策略。可以看出,A 有 种不同的选择,B 有 种不同的选择。
所以一共有 组不同的策略。
当策略确定之后,从树根开始,不断沿着重边往下走,直到走到某个叶子节点 。这时 A 的分数是 ,B的分数是 。
一组策略 如果满足以下条件,那么该组策略是一个纳什均衡点:
- 在 A 的策略不改变的情况下,B 无法通过改变自己的策略获得更高分。即在策略 中 B 的得分总小于等于 中 B 的得分。
- 在 B 的策略不改变的情况下,A 无法通过改变自己的策略获得更高分。即在策略 中 A 的得分总小于等于 中 A 的得分。
给定树形态和 。令 和 的值域是 ,那么一共有 组不同的 。
现在要求对每组不同的 都计算纳什均衡点的个数。由于 过大,所以输出这 个答案的和。这个和可能还是过大,所以输出和对 取模后的值。即,求
其中 是所有定义域为 ,值域为 的函数集。 是指给定 和 情况下的纳什均衡点个数。
A 和 B 认为这棵树太大了,想要只保留这棵树的一个子树。具体地,对于每一个节点 ,删除树的其他部分,只保留点 的子树,并以点 作为树根开始游戏,将上面问题的答案记为 。
你需要求出所有 。
输入格式
第一行三个整数 。保证 为奇数。
第二行包括 个整数 。 表示 的父亲,。
输出格式
输出 行,每行一个数,第 行输出 。
3 2 114514
1 1
24
4
4
9 2 191981
1 1 3 4 4 3 7 7
8960
4
1152
24
4
4
24
4
4
11 45 233
1 1 3 3 5 5 4 4 9 9
80
161
177
150
80
161
161
161
80
161
161
数据范围与提示
- Subtask :, 是质数。
- Subtask :。
- Subtask :。