题目背景
PA 2025 R5A.
警告:滥用本题评测一次即可封号。
这里提供了本题的部分测试点(你可以在附件中下载它们),强烈建议上述题目提交通过后再提交本题。
题目描述
有 106 棵树,自西向东编号 1∼106。小恐龙的营地在第 1 棵树西边。

在接下来的 n 天中,小恐龙的饮食计划为:
- 第 i 天,她将从营地步行到树 ai,再返回营地。
- 从营地去树 ai 的途中,她会摘下遇到的所有奇数编号的树的 vi 片叶子;
- 从树 ai 返回营地的途中,她会摘下遇到的所有偶数编号的树的 vi 片叶子。
不难发现,每天,每棵树至多只被摘一次叶子。
一开始,vi=0。有 m 次修改:
- 第 j 次修改将前 pj 天的 vi(i=1,2,…,pj)每个增加 wj。
此外,修改间隙有 z 次查询:
- 第 j 次查询:求出在前 pj 天中,第 dj 棵树被吃掉的总叶子数。
修改会影响所有后面的查询,但是每个查询之间是独立的。
输入格式
第一行,三个正整数 n,m,z。
第二行,n 个正整数 a1,a2,…,an。
接下来 (m+z) 行,每行三个正整数:
- 1 pj wj,描述一次修改操作;
- 2 pj dj,描述一次查询操作。
输出格式
输出 z 行,每行一个非负整数,表示查询的答案。
3 2 4
3 4 1
2 3 1
1 2 10
2 1 2
2 3 1
1 3 1
2 3 2
0
10
20
22
提示
样例解释
饮食计划如下:
- 第 1 天:前往 a1=3 号树;去程摘奇数编号树(1,3)的叶子,返程摘偶数编号树(2)的叶子。
- 第 2 天:前往 a2=4 号树;去程路径摘 1,3 的叶子;返程摘 4,2 的叶子。
- 第 3 天:前往 a3=1 号树;去程摘 1 的叶子,返程不摘叶子。
初始时所有 v1=v2=v3=0,即实际上一片叶子都不会摘。
-
第一次查询,问前 3 天中,1 号树被摘掉的叶子数。答案显然为 0。
-
第一次修改,将前 2 天的 vi 各增加 10。
此时 v1=10,v2=10,v3=0。
-
第二次查询,问第 1 天中,2 号树被摘掉的叶子数。
由于第一天返程时摘了 2 号树的叶子,所以答案为 10。
-
第三次查询,问前 3 天中,1 号树被摘掉的总叶子数。
由于前两天都会摘 1 号树的叶子,所以答案为 10+10=20。
-
第二次修改,将前 3 天的 vi 各加 1。
此时,v1=11,v2=11,v3=1。
-
第四次查询,问前 3 天中,2 号树摘掉的叶子数。
答案为 11+11+0=22。
数据范围
- 1≤n,m,z≤106;
- n⋅m⋅z≤1016;
- 1≤ai,wj,dj≤106;
- 1≤pj≤n。
子任务
子任务 0 为样例。
下表中,符号 a∼b 表示 0.99⋅b<a≤b。
子任务编号 |
限制 |
1 |
(m+z)⋅n≤107 |
2 |
z⋅m≤107,n⋅m⋅z∼1013 |
3 |
n=104,n⋅m⋅z∼1014 |
4 |
m=104,n⋅m⋅z∼1014 |
5 |
z=104,n⋅m⋅z∼1014 |
6 |
n⋅m⋅z∼1014 |
7 |
n=104,n⋅m⋅z∼1016 |
8 |
m=104,n⋅m⋅z∼1016 |
9 |
z=104,n⋅m⋅z∼1016 |
10 |
n⋅m⋅z∼1016 |