#6721. 仓库库存统计
仓库库存统计
仓库库存统计
题目描述
某仓库有 n 个货架,编号为:
1 ~ n
第 i 个货架当前存放商品数量为:
a[i]
仓库管理员需要实时统计库存情况。
系统需要支持两种操作:
操作类型 1:查询库存
输入:
1 x
表示查询前 x 个货架中的商品总数量。
即:
输出该结果。
操作类型 2:增加库存
输入:
2 p v
表示:
第 p 个货架增加 v 件商品。
即:
修改后需要保存新的库存数量,方便之后查询。
请你编写程序,帮助仓库管理员完成所有操作。
输入格式
第一行包含两个整数:
n q
表示:
n:货架数量q:操作次数
第二行包含 n 个整数:
a1 a2 ... an
表示初始库存数量。
接下来 q 行,每行一个操作:
如果操作类型为:
1 x
表示查询前 x 个货架库存总数。
如果操作类型为:
2 p v
表示第 p 个货架增加 v 件商品。
输出格式
对于每一次查询操作:
1 x
输出一行答案。
数据范围
对于所有测试数据:
1 ≤ n,q ≤ 100000
0 ≤ a[i] ≤ 10^9
1 ≤ p,x ≤ n
1 ≤ v ≤ 10^9
保证所有查询结果不会超过:
long long
范围。
输入样例
5 5
1 2 3 4 5
1 3
2 3 10
1 3
1 5
1 2
输出样例
6
16
25
3
样例解释
初始库存:
货架编号:
1 2 3 4 5
库存:
1 2 3 4 5
第一次操作:
1 3
查询前 3 个货架:
1+2+3=6
输出:
6
第二次操作:
2 3 10
表示:
第 3 个货架增加 10 件商品。
库存变为:
1 2 13 4 5
第三次操作:
1 3
查询:
1+2+13=16
输出:
16
第四次操作:
1 5
查询:
1+2+13+4+5=25
输出:
25
第五次操作:
1 2
查询:
1+2=3
输出:
3
| 测试点编号 | n ≤ | q ≤ | 难度层级 | 特殊性质 | 覆盖点 / 设计目的 |
|---|---|---|---|---|---|
| 1 | 3 | 弱数据 | 最小规模 | 单元素、初值为 0、单点更新后查询 | |
| 2 | 5 | 全正数 | 基础前缀和、查询中间与末尾、一次更新 | ||
| 3 | 6 | 正常数据 | 含 0 和负数 | 负数更新、前缀和增减变化 | |
| 4 | 8 | 重复更新同一位置 | 同点多次修改、正数变负数、首位边界 | ||
| 5 | 8 | 9 | n 为 2 的幂 | 树状数组典型边界、首尾查询 | |
| 6 | 5 | 6 | 极限数据 | long long 大数 | 10¹² 量级、正负抵消、64 位整数 |
| 7 | 10 | 11 | 正常数据 | 初始全 0 | 多点增减、查询更新位置前后差异 |
| 8 | 12 | 10 | 全相同 | 首尾与中间更新、重复值场景 | |
| 9 | 20 | 15 | 极限数据 | 交替正负 | 大量抵消、边界相邻位置更新 |
| 10 | 30 | 20 | 较多操作 | 多次取消原值、混合更新与查询 | |
相关
在以下作业中: