前缀和——[NOI Online #3 提高组]水壶

题目:https://www.luogu.com.cn/problem/P6568
分析:
这道题求连续k个数的最大值,且每个数大于等于0,所以采取前缀和

正统前缀和模板

int n;
cin>>n;
int a[n+1],ary[n+1];
ary[n+1]=0;//这里需要将第一个数赋初始值,因为它会影响计算
//并不需要将全部数赋初始值,因为后面的数是由前面的数和输入的数计算得来
//本身的值对结果无影响
for(int i=1;i<=n;i++){
	cin>>a[i];
	ary[i]=ary[i-1]+a[i];
} 

本题
关键:
它是可以k次操作,也就是选k+1个壶

答案

int n,k;
cin>>n>>k;
int a[n+1];
int b[n+1];
b[0]=0;
for(int i=1;i<=n;i++){
    cin>>a[i];
    b[i]=b[i-1]+a[i];
}
int maxn=0; 
for(int i=k+1;i<=n;i++){
    maxn=max(maxn,b[i]-b[i-k-1]);
}
cout<<maxn;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章