题目名称 36. 求和问题
输入输出 sum.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2008-06-20加入
开放分组 全部用户
提交状态
分类标签
模拟 基本 前缀和
分享题解
通过:984, 提交:3294, 通过率:29.87%
Gravatar雪狼 100 0.125 s 0.39 MiB C++
GravatarBYEBYE NOIP2014 100 0.126 s 0.39 MiB C++
Gravatar123swss 100 0.129 s 2.03 MiB C
GravatarGain 100 0.130 s 0.28 MiB C++
Gravatar超级傲娇的AC酱 100 0.130 s 0.32 MiB C++
Gravatar甘罗 100 0.131 s 0.07 MiB Pascal
GravatarGain 100 0.134 s 0.31 MiB C++
GravatarNARUTO 100 0.134 s 0.32 MiB C++
Gravatar天空非翔 100 0.136 s 0.07 MiB Pascal
Gravatar 100 0.145 s 1.05 MiB C++
本题关联比赛
十一中校庆欢乐赛
DP暑假B班欢乐水题赛
线段数树状数组
哈哈哈
关于 求和问题 的近10条评论(全部评论)
回复 @小刘同学 :
哥估计是你数组开小了
Gravatar克洛琳德_dog
2024-07-09 17:28 81楼
运行时错误是什么鬼
Gravatar小刘同学
2024-07-07 10:02 80楼
123
Gravatar索YYDS
2022-03-01 18:32 79楼
就是一个前缀和板子呀
Gravatar夜莺
2020-02-12 12:13 78楼
开了o2还超时,我这算法是有多LAN....
GravatarRichard
2019-07-06 18:55 77楼
0
GravatarShallowDream雨梨
2019-07-02 17:44 76楼
Gravatar小红红
2019-02-12 09:09 75楼
回复 @cool超 :
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
freopen("juzhen.in","r",stdin);
freopen("juzhen.out","w",stdout);
int n,m;
int a[101][101];
int mgzsb=0;
int i,j;
cin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>a[i][j];
if(i==1||i==n||j==1||j==m)
mgzsb+=a[i][j];
}
}
cout<<mgzsb<<endl;
return 0;
}
Gravatar10001
2018-11-26 19:59 74楼
苏格拉底死前对他的弟子柏拉图说:
‘无产阶级文化大革命(嘿)就是好!
就是好呀就是好呀就是好。
马列主义大普及,
上层建筑红旗飘。
革命大字报(嘿),
烈火遍地烧。
胜利凯歌冲云霄。
七亿人民团结战斗,
红色江山牢又牢。
(文化大革命好!文化大革命好!)
无产阶级文化大革命就是好,
就是好,就是好,就是好!
无产阶级文化大革命(嘿)就是好!
就是好呀就是好呀就是好。
一代新人在成长,
顶风逆浪战英豪。
工业学大庆(嘿),
农业学大寨。
万里神州传捷报。
七亿人民跟着毛主席,
继续革命向前跑。
(文化大革命好!文化大革命好!)
无产阶级文化大革命就是好,
就是好,就是好,就是好!
无产阶级文化大革命就是好!’
Gravatarcool超
2018-11-13 21:33 73楼
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
long long a[100010],n,sum[100010],l,r,Q;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
cin>>Q;
while(Q--)
{
cin>>l>>r;
cout<<sum[r]-sum[l]+a[l]<<" ";
}
return 0;
}
Gravatarcool超
2018-11-13 21:32 72楼

36. 求和问题

★   输入文件:sum.in   输出文件:sum.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

在一个长度为$n$的整数数列中取出连续的若干个数,并求它们的和。

【输入格式】

输入由若干行组成,第一行有一个整数$n$;

第二行有$n$个整数;第三行有一个整数m;

下面$m$行,每行两个整数$i$与$j(i<=j)$,表示求和的起始和终止位置。

【输出格式】

输出有$m$行, 每行一个整数,对应输入数据$m$个区间的某个区间所有元素之和。

【样例输入】

8
2 3 4 7 8 9 10 234
5
2 3
4 7
1 3
7 7
7 8

【样例输出】

7
34
9
10
244

【数据规模】

对于40%的数据,$n<=1000,m<=1000$,数列中的数不超过$32767$,数列的和不超过$10^9$;

对于70%的数据,$n<=10000,m<=2*10^5$,数列中的数不超过$32767$;

对于100%的数据,$n<=10000,m<=2*10^5$,数列中的数不超过$10^9$;