题目大意:有n个数,不断地对其中的某个数字进行修改,不断地询问某一段数字的和,如何快速解决?
题目描述
给你n个整数,请问第x个到第y个的和是多少?
与上一题不同,在询问前后,这n个数中的某个数可能会有改动。
输入
第一行:n和m,表示n个数,m个询问
第二行:n个整数
接下来m行,每行3个整数o、x、y:o表示求和还是更改数字,如果o=1,表示将第x个数改成y;如果o=2,表示求第x个到第y个的和。
输出
对于每次询问和,输出区间的和。
样例输入
5 3
1 2 -3 6 5
2 2 4
1 2 5
2 1 3
样例输出
5
3
提示
1<=x、y<=n;1<=o<=2;n个数,每个数的绝对值不超过1000;5<=n、m<=200000
(10个点数据范围:5, 10, 100, 500, 1000, 5000, 10000, 50000, 100000, 150000, 200000)
解题思路
读入n个数到数组a,对于每次询问,如果是修改,则直接修改a[i]的值,如果是询问区间和,值直接累加区间所有元素,时间复杂度O(m*n),不能拿满分。