P5638 【CSGRound2】光骓者的荣耀

P5638 【CSGRound2】光骓者的荣耀
题解:
由题意可知枚举i=1~n-k,且i+k~n两段的和求最小值,纯暴力时间O(n2),此题会TLE,预处理前缀和,可以加快两点的和求解时间为O(n),注意数据大小要long long 类型。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1000010;
long long a[maxn];
int main()
{
	int n,k;
	scanf("%d %d",&n,&k);
	for (int i=1;i<n;i++)
	{
		scanf("%lld",&a[i]);
		a[i]+=a[i-1];
	}
	long long ans=a[n-1];
	for (int i=k;i<n;i++)
	{
		ans=min(ans,a[n-1]-(a[i]-a[i-k]));
	}
	cout<<ans<<endl;
} 

  

posted @ 2022-03-07 08:49  心悟&&星际  阅读(120)  评论(0编辑  收藏  举报