将对区间的操作变成对端点的操作
a为原始数组
sum[i]=sum[i-1]+a[i] # 表示a的前i项和
所以a[l]到a[r]的和=sum[r]-sum[l-1]
例题:
输入样例:
5 3
2 1 3 6 4
1 2
1 3
2 4
输出样例:
3
6
10
代码:
n,m=map(int,input().split())
a=[0]+list(map(int,input().split()))
op=[0]*m
for i in range(m):
op[i]=list(map(int,input().split()))
sum=[0]*(n+1)
for i in range(1,n+1):
sum[i]=sum[i-1]+a[i]
for j in range(m):
if op[j][0]==1:
print(sum[op[j][1]])
else:
ans=sum[op[j][1]]-sum[op[j][0]-1]
print(ans)