#1138. 例0-🐰🐱值班登记簿

例0-🐰🐱值班登记簿

题目描述

兔猫信奥学院最近实行了新的学习值班制度。每天都有一些同学值班,他们的辛勤劳动会记录在一个值班分数表中。牛局长让小兔负责维护这个分数表,用于后续评优。

起初,第 11 到第 nn 天,每天的分数都是 00。之后,会有 mm 个操作:

  1. 1 l r d:表示将第 ll 到第 rr 天的分数每一天都增加 dd 分。
  2. 2 x:表示查询第 11 到第 xx 天的值班总分数之和。

小兔想到了用差分数组+前缀和来解决,但她听说加菲老师推荐了一种神奇的技巧叫树状数组,能让查询和修改都更快。你能帮小兔用这种高效方法完成任务吗?


输入格式

第一行包含两个整数 nnmm,分别表示天数和操作数。

接下来 mm 行,每行一个操作,格式为:

  • 1 l r d:表示将区间 [l,r][l, r] 的分数都增加 dd
  • 2 x:表示查询区间 [1,x][1, x] 的总分数

输出格式

对于每个查询操作(操作类型为 22),输出一行一个整数,表示查询结果。


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

数据范围

  • 1n,m1051 \leq n, m \leq 10^5
  • 1lrn1 \leq l \leq r \leq n
  • 1xn1 \leq x \leq n
  • d104|d| \leq 10^4