洛谷 P13976:数列分块入门 1 ← 序列分块算法(区间更新、单点查询)
【题目来源】
【题目描述】
给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,单点查值。
【输入格式】
第一行输入一个数字 n。
第二行输入 n 个数字,第 i 个数字为 ai,以空格隔开。
接下来输入 n 行询问,每行输入四个数字 opt、l、r、c,以空格隔开。
若 opt=0,表示将位于 [l,r] 的之间的数字都加 c。
若 opt=1,表示询问 ar 的值(l 和 c 忽略)。
【输出格式】
对于每次询问,输出一行一个数字表示答案。
【输入样例】
4
1 2 2 3
0 1 3 1
1 0 1 0
0 1 2 2
1 0 2 0
【输出样例】
2
5
【数据范围】
对于所有数据,1≤n≤300000,−2^63≤ai,c,ans≤2^63−1。
【算法分析】
● “序列分块”算法的基本要素及 build() 函数的构建细节:
【算法代码:1-based】
本题推荐 1-based 写法。
【算法代码:0-based】
【参考文献】

浙公网安备 33010602011771号