4 solutions
-
1
解题报告
撰写人: 钟志杰
题意分析
这道题如果直接用暴力就会超时,所以我们要用第二种方法,那就是前缀和!
难度等级
★☆☆☆☆
解题思路
这道题重点在于前缀和,那么前缀和是什么呢?前缀和如下:
前缀和指的是从a[1]加到a[i]的值,其实只要用k[i]=k[i-1]+a[i]即可(k为前缀和数组)
求从a到b就简单了!
只要用k[b]-k[a-1],就可以了,记住:k[a-1]不要写成k[a]了!解题反思
无
参考程序
#include<bits/stdc++.h> #define LL long long using namespace std; LL n,m,x,s[100005],l,r; int main(){//主函数 cin>>n>>m; for(int i=1;i<=n;i++){ cin>>x; s[i]=s[i-1]+x;//计算前缀和 } for(int i=1;i<=m;i++){ cin>>l>>r; cout<<s[r]-s[l-1]<<endl;//把l到r的值算出来 } return 0; }
Information
- ID
- 598
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 94
- Accepted
- 33
- Uploaded By