[数组]汕头市选2012初中组】求和(sum)
2017-03-31 21:09
155 查看
题目描述
ftiasch 有很多糖果,分成了N 堆,排成一列。ftiasch 说,如果nm 能迅速求出第L 堆到第R 堆一
共有多少糖果,就把这些糖果都给他。
现在给出每堆糖果的数量,以及每次询问的L 和R,你需要帮助nm,把每次询问的结果求出来。
注意,你不需要考虑糖果被nm 取走的情况。
输入
第1 行,2 个整数N, M, 分别表示堆数和询问数量。第2 行,N 个整数Ai,表示第i 堆糖果的数
量。第3 (M + 2) 行,每行2 个整数Li, Ri,表示第i 个询问是[Li;Ri]。
输出
M 行,对于每个询问,输出对应的和。
分析
这题就看你脑筋转不转的过来
用数组记录,其中a[i]为从第一堆加到第i堆的值
要求出两堆之间的数量其实就是a[r]-a[l-1]
ftiasch 有很多糖果,分成了N 堆,排成一列。ftiasch 说,如果nm 能迅速求出第L 堆到第R 堆一
共有多少糖果,就把这些糖果都给他。
现在给出每堆糖果的数量,以及每次询问的L 和R,你需要帮助nm,把每次询问的结果求出来。
注意,你不需要考虑糖果被nm 取走的情况。
输入
第1 行,2 个整数N, M, 分别表示堆数和询问数量。第2 行,N 个整数Ai,表示第i 堆糖果的数
量。第3 (M + 2) 行,每行2 个整数Li, Ri,表示第i 个询问是[Li;Ri]。
输出
M 行,对于每个询问,输出对应的和。
分析
这题就看你脑筋转不转的过来
用数组记录,其中a[i]为从第一堆加到第i堆的值
要求出两堆之间的数量其实就是a[r]-a[l-1]
#include <iostream> #include <cstdio> using namespace std; long long n,m,i,a[100001],l,r; int main() { freopen("sum.in","r",stdin); freopen("sum.out","w",stdout); scanf("%d%d",&n,&m); for (i=1;i<=n;i++) { scanf("%d",&a[i]); a[i]+=a[i-1]; } for (i=1;i<=m;i++) { scanf("%d%d",&l,&r); printf("%d\n",a[r]-a[l-1]); } return 0; }
相关文章推荐
- 【汕头市选2012初中组】求和(sum) 的”线段树“吐槽
- JZOJ 3.25 1420——【汕头市选2012初中组】求和(sum)
- jzoj P1420【汕头市选2012初中组】求和(sum)
- jzoj P1421【汕头市选2012初中组】数数(count)
- JZOJ 3.25 1421【汕头市选2012初中组】数数(count)
- 1419. 【汕头市选2012初中组】排序(sort) (jzoj)
- 二维树状数组 区间求和模板(#1336 : Matrix Sum)
- jzoj P1422【汕头市选2012初中组】步行(walk)
- JZOJ 3.25 1422——【汕头市选2012初中组】步行(walk)
- LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)
- 1422. 【汕头市选2012初中组】步行(walk) (jzoj)
- [排序]【汕头市选2012初中组】排序(sort)
- [DP]【汕头市选2012初中组】数数(count)
- 【汕头市选2012初中组】数数(count) 的简单题解
- JZOJ 3.25 1419——【汕头市选2012初中组】排序(sort)
- LeetCode 303. Range Sum Query - Immutable(数组求和)
- 汕头市选2012初中组 数数(count) (jzoj)
- leetcode 560. Subarray Sum Equals K 动态规划DP子数组求和
- jzoj P1419【汕头市选2012初中组】排序(sort)
- 敌兵布阵------树状数组(单点更新与区间求和)