标签:最大子序列和 const 最大 for while 单调队列 str out name
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
const int N=300100;
int sum[N];
int ans=-N;
int q[N];
int main()
{int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>sum[i];
sum[i]+=sum[i-1];
}
int l=1,r=1;
for(int i=1;i<=n;i++)
{
while(l<=r&&q[l]<i-m)l++;
ans=max(ans,sum[i]-sum[q[l]]);
while(l<=r&&sum[q[r]]>=sum[i])r--;
q[++r]=i;
}
cout<<ans;
}
标签:最大子序列和 const 最大 for while 单调队列 str out name
原文地址:https://www.cnblogs.com/arbor-one/p/12263175.html