#P16025. [Lot2017]Meow
[Lot2017]Meow
题目描述
信息学俱乐部里出现了一只新的宝可梦 Meow2。Meow2 喜欢树,因此它有一棵带根树,共有 个节点,编号为 到 。
节点 是根。对于任意非根节点,它的父亲节点编号都严格小于它。每个节点 初始有一个自然数标签 ,满足 。
Meow2 想知道,在这棵初始树上,序列
作为“向下子序列”出现了多少次。
形式化地说,它关心有多少个节点序列
满足:
- 节点 的标签为 ;
- 对每个 ,节点 是节点 的祖先,祖先不要求是直接父亲。
Meow2 正在不断进化,因此它会逐步修改树上节点的标签。它有一个长度为 的魔法修改序列 。在第 次修改,,它会把节点
的标签改为 ,其中 。一次修改会对之后的所有步骤继续生效。
Meow2 想知道,每次修改之后,序列 作为“向下子序列”出现了多少次。设第 次修改后的答案为 ,其中 。你需要输出:
$$O=\left(1\cdot ans_0+2\cdot ans_1+\cdots+Q\cdot ans_{Q-1}\right)\bmod (10^9+7).$$输入格式
第一行包含三个自然数 ,含义如题所述。
第二行包含 个整数,记为 ,其中 表示节点 的父亲。
第三行包含长度为 的序列 ,表示各节点的初始标签。
接下来 行,每行一个整数,依次构成修改序列 。第 行修改会把节点 的标签改为对应的 。
输出格式
包含一个整数,表示题目要求的 ,对 取模。
数据范围与约定
- ;
- ;
- 对任意 ,;
- 对任意 ,;
- 。
子任务:
| 分值 | 限制 |
|---|---|
| 20 | |
| 50 | |
| 100 | 原始限制 |
样例
输入
6 2 6
0 1 0 3 0
1 2 1 2 1 2
2
1
2
1
2
1
输出
29
解释
在初始树中,序列 出现 次。
但是在各次修改之后,答案依次为:
所以最终输出:
$$1\cdot0+2\cdot0+3\cdot1+4\cdot1+5\cdot2+6\cdot2=29.$$