洛谷P1714 切蛋糕————单调队列+前缀和

题解:本题主要考查单调队列
简要题意:取连续的k(k<=m)个数,求其中所有可能的最大值。
1.前缀和:求的是连续最值很自然用前缀和求,注意k<=m。
2.单调队列:维护单调队列,不在范围内要出队
代码如下:

#include
#include
using namespace std;
int n,m,h=1,t=1,ans=-99;
int q[953569],a[977541];
int main()
{
    cin>>n>>m;
    q[1]=0;
    for(int i=1;i<=n;i++){cin>>a[i];a[i]+=a[i-1];}
    for(int i=1;i<=n;i++)
    {
        while(h<=t&&q[h]

你可能感兴趣的:(队列)