51Nod-1081-子段求和
2017-08-27 12:56
274 查看
51Nod-1081-子段求和
解题方法
使用前缀和解题,把前缀和存入列表里,每次查询时,就用用两个前缀和相减即可求出答案。
解题代码
1081 子段求和 给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。 Input 第1行:一个数N,N为数组的长度(2 <= N <= 50000)。 第2 至 N + 1行:数组的N个元素。(-10^9 <= N[i] <= 10^9) 第N + 2行:1个数Q,Q为查询的数量。 第N + 3 至 N + Q + 2行:每行2个数,i,l(1 <= i <= N,i + l <= N) Output 共Q行,对应Q次查询的计算结果。 Input示例 5 1 3 7 9 -1 4 1 2 2 2 3 2 1 5 Output示例 4 10 16 19
解题方法
使用前缀和解题,把前缀和存入列表里,每次查询时,就用用两个前缀和相减即可求出答案。
解题代码
N = int(input()) A = [0] #迭加前缀和放入列表里 for n in range(N): A.append(int(input()) + A ) T = int(input()) for t in range(T): a, b = list(map(int, input().split())) #定位前后两个前缀和,用相减求出中间的总和值 print(A[a+b-1]-A[a-1])
相关文章推荐
- 51Nod 1081 子段求和
- 51NOD 1081 子段求和
- 51nod 1081 子段求和
- 51Nod-1081 子段求和
- 51nod 1081 子段求和(树状数组)
- 51Nod 1081 子段求和(数组/树状数组)
- 51nod-1081[前缀和]子段求和
- 51Nod 1081 子段求和
- 51Nod - 1081 子段求和 前缀和算法
- 51nod 1081 子段求和
- 51Nod-1081-子段求和
- 【51Nod】1081 子段求和
- 51nod 1081 子段求和
- 51nod 1081 子段求和
- 51nod:1081 子段求和(树状数组)
- 【51NOD-0】1081 子段求和
- 51nod_1081 子段求和
- 51Nod-1081 子段求和【前缀和】
- HDU 1081 To The Max【DP】【最大子段矩阵求和】
- 51nod(1081 字段求和)(dp、树状数组、线段树求法)