球球解答,我的答案oj一直通过不了
18927 前缀和时间限制:1000MS代码长度限制:10KB
提交次数:0 通过次数:0
题型: 编程题 语言: 不限定
Description
前缀和是一种重要的预处理方法,能极大地降低查询序列区间和的时间复杂度。
现在一个序列中有n个整数,下标从1....n。
有m个查询,每个查询给出一个区间的左右端点下标,请输出这个区间所有数据的和。
输入格式
第一行一个整数n。(1<=n<=100000)
第二行n个整数,用空格分隔,int范围。
第三行一个整数m。(1<=m<=100000)
下面m行每行两个整数L,R。(1<=L<=R<=n)
输出格式
输出共m行,每行一个整数为对应区间的序列和。
注意序列和的数据范围可能超出int范围。
输入样例
5
3 -8 4 5 1
4
3 3
1 1
2 4
1 3
输出样例
4
3
1
-1
提示
在读入数据后,用一个sum数组来记录从第1个元素到第i个元素的和,for(i=1;i<=n;i++)sum=sum+a;
这样区间的和可以用sum-sum得到。
你代码呢?
让猜猜你怎么写的? 本帖最后由 jackz007 于 2021-3-20 13:57 编辑
#include <stdio.h>
main(void)
{
long long D , sum ;
int LR , i , j , m , n ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%lld" , & D) ;
scanf("%d" , & m) ;
for(i = 0 ; i < m ; i ++) scanf("%d%d" , & LR , & LR) ;
for(i = 0 ; i < m ; i ++) {
for(sum = 0 , j = LR - 1 ; j < LR ; j ++) sum += D ;
printf("%lld\n" , sum) ;
}
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
5
3 -8 4 5 1
4
3 3
1 1
2 4
1 3
4
3
1
-1
D:\00.Excise\C> 笑死,同是华农人,我OJ也是卡这题 Loooog 发表于 2021-3-20 14:09
笑死,同是华农人,我OJ也是卡这题
哈哈哈,就一直过不了 jackz007 发表于 2021-3-20 13:48
编译、运行实况
这个代码超时了{:5_100:} 题目不就是赤裸裸的题解吗?
页:
[1]