题目描述
有一棵 n(1≤n≤105)个点的树以及 k(2≤k≤5)个颜色,根节点为 1。同时,给定一个颜色合并函数 a⊗b,满足当 1≤a,b≤k,有 1≤a⊗b≤k。
请问有多少个方案对所有点染色,使得当点对 u,v 之间没有祖先关系,有:
- u 和 v 最近公共祖先的颜色为点 u 的颜色和点 v 的颜色之并。
答案对 109+7 取模。
输入格式
本题有多组数据,第一行一个正整数 t(1≤t≤103),为数据组数。接下来 t 组数据,其中对于每一组数据:
第一行两个正整数 n,k。
接下来 k 行,每行 k 个正整数。第 i 行第 j 个数为 i⊗j 的值。
接下来 n−1 个正整数 f2,f3,…,fn,其中 fi 是 i 的父亲节点。
输出格式
对于每一组数据:
输出一个整数,表示答案。
2
5 2
1 2
2 1
1 2 1 4
5 2
1 2
1 1
1 2 1 4
4
2
提示
样例 1 解释
树的形态如下:

设 wi 为第 i 个点的点权,则有如下 4 种分配方式:
- wi={1,1,1,1,1};
- wi={2,2,2,1,1};
- wi={2,1,1,2,2};
- wi={1,2,2,2,2}。
数据规模与约定
本题采用捆绑测试。
对于 100% 的数据,1≤n,∑n≤105,2≤k≤5,1≤fi<i。
对于 100% 的数据,1≤t≤1000。
- Subtask 1(5 pts):n≤5;
- Subtask 2(11 pts):树上任何节点孩子个数至多为 2;
- Subtask 3(23 pts):树上任何节点孩子个数至多为 3;
- Subtask 4(13 pts):k=2;
- Subtask 5(17 pts):k≤3;
- Subtask 6(31 pts):无特殊限制。