A. 序列(文件 IO:array)

    传统题 文件IO:array 1000ms 512MiB

序列(文件 IO:array)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给定 n,mn,m 和一棵 nn 个点的有根树,11 是树根,每个点有点权,第 ii 个点的权值为 aia_i,保证 1aim1\le a_i\le m

定义这棵树的价值为符合以下条件的长为 mm 的序列 (p1,p2,,pm)(p_1,p_2,\cdots,p_m) 个数:

  • 对每个 1im1\le i\le mapi=ia_{p_i}=i
  • 对每个 1i<m1\le i<m,编号为 pi+1p_{i+1} 的节点在编号为 pip_i 的节点的子树内。

现在有 qq 次修改,第 ii 次修改会将 a(i1) mod n+1a_{(i-1)\text{ mod }n+1} 的值修改为 viv_i,你需要在所有修改进行之前以及每次修改进行之后求出这棵树的价值对 109+710^9+7 取模的值。

输入格式

从文件 array.in 中读入。

第一行三个整数 n,m,qn,m,q

第二行 n1n-1 个整数,其中第 ii 个整数为 fi+1f_{i+1},表示 i+1i+1 号节点在树上的父亲是 fi+1f_{i+1} 号节点。

第三行 nn 个整数,其中第 ii 个整数为 aia_i

第四行 qq 个整数 v1,v2,,vqv_1,v_2,\cdots,v_qviv_i 表示第 ii 次修改会将 a(i1) mod n+1a_{(i-1)\text{ mod }n + 1} 修改为 viv_i

输出格式

输出到文件 array.out 中。

共一行 q+1q+1 个整数,用空格隔开,其中第一个整数为初始时的答案对 109+710^9+7 取模后的结果,第 i+1i+1 个整数为前 ii 次修改后的答案对 109+710^9+7 取模后的结果。

样例 11 输入

5 2 10
1 2 1 3 
1 2 2 1 1 
2 2 1 2 2 2 1 2 2 2

样例 11 输出

2 0 0 0 0 1 1 2 2 2 2

样例 11 解释

如图,初始时的 aa 序列为 [1,2,2,1,1][1,2,2,1,1],有 [1,2],[1,3][1,2],[1,3] 两种选法。

33 次操作后的 aa 序列为 [2,2,1,1,1][2,2,1,1,1],没有选法。

77 次操作后的 aa 序列为 [2,1,1,2,2][2,1,1,2,2],有 [2,5],[3,5][2,5],[3,5] 两种选法。

样例 242 \sim 4

见下发文件:下载链接

array2.in/ans 满足子任务 11 的限制。

array3.in/ans 满足子任务 22 的限制。

array4.in/ans 满足子任务 66 的限制。

测试点约束

对于全部测试点,$1\le n,m,q\le 5\times 10^5,1\le f_{i}<i,1\le a_i\le m$。

本题采用捆绑测试。

子任务编号 nn\le mm\le qq\le fif_i 分值
Subtask 1 2020 2020 2020 <i<i 1515
Subtask 2 400400 400400 400400 <i<i 2020
Subtask 3 50005000 50005000 50005000 <i<i 2020
Subtask 4 5×1055\times 10^5 5×1055\times 10^5 5050 <i<i 1515
Subtask 5 5×1055\times 10^5 5050 5×1055\times 10^5 <i<i 1010
Subtask 6 5×1055\times 10^5 5×1055\times 10^5 5×1055\times 10^5 =i1=i-1 1010
Subtask 7 5×1055\times 10^5 5×1055\times 10^5 5×1055\times 10^5 <i<i 1010

[YDRG#009] 第一届云斗省选计划预选赛 暨 云斗十二月 Gold Round

未参加
状态
已结束
规则
OI
题目
3
开始于
2024-12-21 8:30
结束于
2024-12-22 19:30
持续时间
4.5 小时
主持人
参赛人数
189