蒟蒻80求助
  • 板块P1714 切蛋糕
  • 楼主MaoMaoNB
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/8/22 20:25
  • 上次更新2023/11/4 09:26:36
查看原帖
蒟蒻80求助
290406
MaoMaoNB楼主2021/8/22 20:25

代码简单易懂的一个贪心

一个点就是没过不知道为什么

思路清奇但挺好看懂的

所以救一救啊

#include<bits/stdc++.h>
#define MaoMao AKIOI!
#define ll long long
#define N 500010
using namespace std;
ll a[N],n,m,ans=0,sum=0;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	ll cnt=1,k=1,i=1;//cnt记录长度,k记录最后一个位置,i记录当前位置 
	while(i<=n){
		if(cnt>m){
			sum-=a[k];
			ans=max(ans,sum);
			k++;
		}
		sum+=a[i];
		if(sum<0){
			sum=0;
			cnt=1;
			i++;
			k=i;
		}
		else {
			ans=max(ans,sum);
			cnt++;
			i++;
		}
	}
	cout<<ans;
	return 0;
} 
2021/8/22 20:25
加载中...