[NOI Online #3 提高组]水壶

description

solution:

作为提高组round 3的T1,还是比较良心的
考虑先把x中的水加入x+1中
现在如果不进行将x+1加入x+2中,那么这一次的操作就浪费了,显然不优
因此倒水总是一个连续的区间
于是就求一个长度为k+1的连续子序列的和,前缀和优化就行了

code:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,k,a[N];
inline int read()
{
	int s=0,w=1; char ch=getchar();
	for(;!isdigit(ch);ch=getchar())if(ch=='-')w=-1;
	for(;isdigit(ch);ch=getchar())s=(s<<1)+(s<<3)+(ch^48);
	return s*w;	
}
int main()
{
	n=read(),k=read();
	for(int i=1;i<=n;++i)
		a[i]=read(),a[i]+=a[i-1];
	int ans=0;
	for(int i=k+1;i<=n;++i)
		ans=max(ans,a[i]-a[i-k-1]);
	cout<<ans;
	return 0;
}
原文地址:https://www.cnblogs.com/zmyzmy/p/13777791.html