【汕头市选2012初中组】求和(sum) 的”线段树“吐槽
2017-03-25 15:24
267 查看
cdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdccdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdccdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdccdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdccdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdccdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcddcdcdcdcdcdcdcd
前缀和是哪里冒出来的???
为什么我会条件反射想到线段树???
明明之前做过类似的题的!!!
明明对线段树一窍不通的说!!!
{分界线----------------------------------------------------------------------------------------------------------------------------------------------------------------------分界线}
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 行,对于每个询问,输出对应的和。
数据范围
• 对于50% 的数据,1<=N;M <=100。
• 对于100% 的数据,1 <= N;M<= 100 000,0<= Ai <= 10 000,1 <= Li<= Ri<= N。
解:
设a[i]为前i个数的和,那么第x个数到第y个数的和为a[y]-a[x-1](x<y)
为什么要是x-1而不是x作为下标呢?看图:
a[x]~a[y]的具体转换如下:
a[1]~[b]a[y][b]-a[1]~a[x-1][/b][/b]
=a[1]~a[x-1]~a[x]~a[y]-a[1]~a[x-1][/u]
=a[1]~a[x-1]~a[x]~a[y]-a[1]~a[x-1][/u]
=[b]a[x]~a[y][/b][/u]
所以a[y]-a[x-1]即为所求第x个数到第y个数的和的值
标程(pascal):
就是这么一道三百多byte就能搞定的题目,我却脑残地打了两个多小时的线段树。
顺便一提,今天终于明白orz什么意思了。
“失意体前屈"可以自己上网搜
于是...................................
orz--
呵呵...................................
前缀和是哪里冒出来的???
为什么我会条件反射想到线段树???
明明之前做过类似的题的!!!
明明对线段树一窍不通的说!!!
{分界线----------------------------------------------------------------------------------------------------------------------------------------------------------------------分界线}
题目描述
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 行,对于每个询问,输出对应的和。
样例输入
5 5 1 2 3 4 5 1 5 2 4 3 3 1 3 3 5
样例输出
15 9 3 6 12
数据范围限制
提示
数据范围• 对于50% 的数据,1<=N;M <=100。
• 对于100% 的数据,1 <= N;M<= 100 000,0<= Ai <= 10 000,1 <= Li<= Ri<= N。
解:
设a[i]为前i个数的和,那么第x个数到第y个数的和为a[y]-a[x-1](x<y)
为什么要是x-1而不是x作为下标呢?看图:
a[x]~a[y]的具体转换如下:
a[1]~[b]a[y][b]-a[1]~a[x-1][/b][/b]
=a[1]~a[x-1]~a[x]~a[y]-a[1]~a[x-1][/u]
=a[1]~a[x-1]~a[x]~a[y]-a[1]~a[x-1][/u]
=[b]a[x]~a[y][/b][/u]
所以a[y]-a[x-1]即为所求第x个数到第y个数的和的值
标程(pascal):
var a:array [0..100000] of longint; n,m,i,x,y:longint; begin assign(input,'sum.in'); reset(input); assign(output,'sum.out'); rewrite(output); readln(n,m); for i:=1 to n do begin read(x); a[i]:=a[i-1]+x; end; for i:=1 to m do begin readln(x,y); writeln(a[y]-a[x-1]); end; close(input); close(output); end.
就是这么一道三百多byte就能搞定的题目,我却脑残地打了两个多小时的线段树。
顺便一提,今天终于明白orz什么意思了。
“失意体前屈"可以自己上网搜
于是...................................
orz--
呵呵...................................
相关文章推荐
- jzoj P1420【汕头市选2012初中组】求和(sum)
- [数组]汕头市选2012初中组】求和(sum)
- JZOJ 3.25 1420——【汕头市选2012初中组】求和(sum)
- 【汕头市选2012初中组】数数(count) 的简单题解
- jzoj P1419【汕头市选2012初中组】排序(sort)
- 汕头市选2012初中组 数数(count) (jzoj)
- jzoj P1421【汕头市选2012初中组】数数(count)
- jzoj P1422【汕头市选2012初中组】步行(walk)
- [排序]【汕头市选2012初中组】排序(sort)
- 1419. 【汕头市选2012初中组】排序(sort) (jzoj)
- 1422. 【汕头市选2012初中组】步行(walk) (jzoj)
- [DP]【汕头市选2012初中组】数数(count)
- JZOJ 3.25 1419——【汕头市选2012初中组】排序(sort)
- JZOJ 3.25 1421【汕头市选2012初中组】数数(count)
- JZOJ 3.25 1422——【汕头市选2012初中组】步行(walk)
- hdu 1166 敌兵布阵(线段树-单点更新,区间求和)
- Wiki OI 1082 线段树练习 3 (区间更新,区间求和)
- Poj 4047 Garden /2012金华邀请赛D题(线段树)
- poj 3468 A Simple Problem with Integers(线段树的区间更新与求和)
- 杭电 1166 敌兵布阵(线段树求和)