#P3109. [USACO14OPEN] Code Breaking G

[USACO14OPEN] Code Breaking G

题目描述

有一棵 NN (1N2×104)(1 \leq N \leq 2\times 10^4) 个节点的有根树,每个节点可以填 090\sim9

MM (1M5×104)(1 \leq M \leq 5\times 10^4) 个限制,限制了从 XX 开始往祖先跳的的包含 XX55 个节点(保证 XX 上面一定存在这样一条路径,也就是说 XX 的深度至少为 55),一定不是 ABCDEABCDE

请你求出,根据这 MM 个限制,共有多少种给这棵树全部填上数的方案一定是不可能的。

输入格式

11 行:两个用空格分隔的整数 NNMM

2N2\sim N 行:第 i+1i+1 行包含一个整数 pip_i,表示树中节点 ii 的父节点,满足 0pi<i0\leq p_i<i

N+1N+MN+1\sim N+M 行:第 N+iN+i 行描述第 ii 个禁止出现的序列。该行包含用空格分隔的 viv_isis_i,其中 viv_i 是该序列的起始节点,sis_i 是一个 55 位字符串,已知从 viv_i 开始向上遍历树得到的 55 个节点的数字序列,不能等于 sis_i 对应的序列。题目保证从 viv_i 向上至少有 55 个节点。

输出格式

一行一个整数,表示被排除的不合法配置数量,结果对 12345671234567 取模。

6 2 
0 
1 
2 
3 
3 
4 01234 
5 91234 

19