#P2248. 「2020-2021 集训队作业」Game on Tree

「2020-2021 集训队作业」Game on Tree

题目描述

Aruba 和 Ball 又在玩游戏,下面将他们分别简称为 A 和 B。

给定一棵 nn 个点的有根树,标号从 11 到 nn,根的标号是 11。每个节点的儿子数只能为 00 或 22。将节点分成下列三类:

  • A{A}:到根距离为偶数的所有非叶节点的集合,其中根到自己的距离为 00
  • B{B}:到根距离为奇数的所有非叶节点的集合
  • L{L}:叶节点的集合

而对于所有叶子节点 u∈Lu\in{L},都会被分配一个二元组 (c(u),d(u))(c(u), d(u))。其中 cc 和 dd 可以看成是定义域为 L{L} 的函数。

游戏开始前:
A 对于 A{A} 中的每个点 uu,从 uu 的两条指向儿子的边中选择一条,将其标记为重边;
B 对于 B{B} 中的每个点 uu,从 uu 的两条指向儿子的边中选择一条,将其标记为重边。

A 的选择可以看成一个定义域为 A{A} 的映射函数 ff; B 的选择可以看成一个定义域为 B{B} 的映射函数 gg。

那么一个有序对 (f,g)(f,g) 被称为一组策略。可以看出,A 有 2∣A∣2^{|{A}|} 种不同的选择,B 有 2∣B∣2^{|{B}|} 种不同的选择。
所以一共有 2∣A∣+∣B∣2^{|{A}|+|{B}|} 组不同的策略。

当策略确定之后,从树根开始,不断沿着重边往下走,直到走到某个叶子节点 uu。这时 A 的分数是 c(u)c(u),B的分数是 d(u)d(u)。
一组策略 (f,g)(f, g) 如果满足以下条件,那么该组策略是一个纳什均衡点:

  • 在 A 的策略不改变的情况下,B 无法通过改变自己的策略获得更高分。即在策略 (f,g′)(f, g') 中 B 的得分总小于等于 (f,g)(f,g) 中 B 的得分。
  • 在 B 的策略不改变的情况下,A 无法通过改变自己的策略获得更高分。即在策略 (f′,g)(f', g) 中 A 的得分总小于等于 (f,g)(f,g) 中 A 的得分。

给定树形态和 kk。令 cc 和 dd 的值域是 Z∩[1,k]{Z}\cap[1,k],那么一共有 k2∣L∣k^{2|{L}|} 组不同的 (c,d)(c,d)。
现在要求对每组不同的 (c,d)(c, d) 都计算纳什均衡点的个数。由于 k2∣L∣k^{2|{L}|} 过大,所以输出这 k2∣L∣k^{2|{L}|} 个答案的和。这个和可能还是过大,所以输出和对 pp 取模后的值。即,求

$$\left(\sum_{c\in{{L}\to[k]}}\sum_{d\in{{L}\to[k]}}F(c,d)\right)\bmod p $$

其中 L→[k]{L}\to[k] 是所有定义域为 L{L},值域为 [k]={1,2,…,k}[k]=\{1,2,\dots,k\} 的函数集。 F(c,d)F(c, d) 是指给定 cc 和 dd 情况下的纳什均衡点个数。


A 和 B 认为这棵树太大了,想要只保留这棵树的一个子树。具体地,对于每一个节点 ss,删除树的其他部分,只保留点 ss 的子树,并以点 ss 作为树根开始游戏,将上面问题的答案记为 AnssAns_s。

你需要求出所有 Anss mod pAns_s\bmod p。

输入格式

第一行三个整数 n,k,p(3≤n≤5000,k≤109,n<p≤106)n,k,p(3\leq n\leq 5000,k\le 10^9,n< p\leq 10^6)。保证 nn 为奇数。

第二行包括 n−1n-1 个整数 fa2,fa3,…,fanfa_2,fa_3,\dots,fa_n。faifa_i 表示 ii 的父亲,1≤fai<i1\leq fa_i< i。

输出格式

输出 nn 行,每行一个数,第 ii 行输出 Ansi mod pAns_i\bmod p。

样例 1

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 1(20 pts)1(20\,\mathrm{pts}):n=99,k≤100n=99,k\leq 100,pp 是质数。
  • Subtask 2(30 pts)2(30\,\mathrm{pts}):n=99n=99。
  • Subtask 3(50 pts)3(50\,\mathrm{pts}):n=4999n=4999。