欢迎光临我的Blog,虽然这里还很简陋,但未来一定会焕发生机的!

[NOI Online #3 提高组] 水壶——炎泽汐 の Blog

算法 yanzexi 2年前 (2023-03-07) 392次浏览 已收录 0个评论 扫描二维码

题目传送门

本题思路很简单,只要找到水容量之和最大的区间即可,注意区间长度为 k+1 不是 k,简单写个前缀和搞定!
#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
#define mem(vis, num) memset(vis, num, sizeof(vis));

using namespace std;

int a[1000010];

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	mem(a, 0);
	
	int n, k, ans = 0;
	
	cin >> n >> k;
	
	for(int i = 1; i <= n; i++){
		int t;
		cin >> t;
		a[i] += a[i - 1] + t;
	}
	
	for(int i = k + 1; i <= n; i++){
		if(a[i] - a[i - k - 1] > ans){
			ans = a[i] - a[i - k - 1];
		}
	}
	
	cout << ans << endl;
	
	return 0;
}
喜欢 (0)
[炎泽汐de收款码]
分享 (0)

您必须 登录 才能发表评论!