最大子序列和模板 用单调队列
Posted arbor-one
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大子序列和模板 用单调队列相关的知识,希望对你有一定的参考价值。
最大子序列和模板 用单调队列
#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;
}
以上是关于最大子序列和模板 用单调队列的主要内容,如果未能解决你的问题,请参考以下文章