#P16041. [Oni2023国家队选拔赛]Impiedicat
[Oni2023国家队选拔赛]Impiedicat
题目描述
鸽子 Gimi 又惹上麻烦了。它正在游览一座城市,这座城市的道路结构是一棵有根树。树有 个交叉口,编号为 到 ,根为 。城市中有 条双向道路。对于每个交叉口 ,已知它的父亲 ,以及该交叉口处纪念碑的高度 。
Gimi 将进行 次飞行。每次飞行从交叉口 出发,沿着树上从 到 的简单路径依次经过所有交叉口,最后到达 。
由于 Gimi 很笨拙,它会撞上路径中所有满足如下条件的纪念碑:该纪念碑高度大于等于此前在本次飞行中已经经过的所有纪念碑高度。也就是说,它会撞上路径上的“前缀最大值”位置,并且一定会撞上起点 的纪念碑。
请对每次询问输出 Gimi 会撞上多少座纪念碑。
输入格式
第一行包含两个整数 。
第二行包含 个整数:
第三行包含 个整数:
其中 表示点 的父亲。
接下来 行,每行包含两个整数 ,表示一次询问。
输出格式
输出 行,第 行表示第 次飞行会撞上的纪念碑数量。
数据范围
- ;
- ;
- ;
- ;
- 节点 没有父亲。
子任务
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 11 | 且 |
| 2 | 8 | 树是一条链 |
| 3 | 9 | 每次询问中, 是 的祖先 |
| 4 | 28 | 每次询问中, 是 的祖先 |
| 5 | 21 | 且 |
| 6 | 23 | 无额外限制 |
样例
8 9
3 2 4 1 3 1 2 1
1 1 2 2 4 5 1
6 8
8 6
6 7
7 6
6 1
1 6
4 5
5 4
6 3
4
2
4
2
4
1
3
1
5
样例中,每次飞行经过的纪念碑高度序列分别为:
1 -> 1 -> 2 -> 3 -> 1
1 -> 3 -> 2 -> 1 -> 1
1 -> 1 -> 2 -> 3 -> 2
2 -> 3 -> 2 -> 1 -> 1
1 -> 1 -> 2 -> 3
3 -> 2 -> 1 -> 1
1 -> 2 -> 3
3 -> 2 -> 1
1 -> 1 -> 2 -> 3 -> 4
其中应统计每个序列中的前缀最大值出现次数。