前綴和——[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;

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