题解:定长区间总和(震撼第三发)
2026-05-19 21:23:01
发布于:上海
6阅读
0回复
0点赞
题目要求我们计算长度为k的区间的元素和,并算出其总和。我们可以先用前缀和数组把从1到n的元素和的累加存储下来,再用for循环一一加上每个区间
#include<bits/stdc++.h>//万能头~
using namespace std;
int n,k,a[200010];
long long sum,s[200010];//其实数据范围应该不用开long long,但以防万一还是开一个
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];//前缀和数组记录累加和
}
for(int i=k;i<=n;i++){
sum+=(s[i]-s[i-k]);//sum累加存储长度为k的区间的总元素和
}
cout<<sum;
return 0;//完美收工~
}
这里空空如也







有帮助,赞一个