• 单调队列


    luogu P1886 滑动窗口 https://www.luogu.org/problemnew/show/P1886

     1 // luogu-judger-enable-o2
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 #define il inline
     5 #define rg register
     6 typedef long long ll;
     7 #define max(a,b) (a)<(b)?(b):(a)
     8 #define gmax(a,b) a=max(a,b)
     9 #define min(a,b) (a)<(b)?(a):(b)
    10 #define gmin(a,b) a=min(a,b)
    11 #define FOR(i,a,b) for(rg int i=a;i<=b;++i)
    12 #define For(i,a,b) for(rg int i=a;i>=b;--i)
    13 #define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),pa==pb)?EOF:*pa++
    14 static char buf[100000],*pa(buf),*pb(buf);
    15 il int rd(){
    16     rg int x(0),w(1);
    17     rg char c(gc);
    18     while(c<'0'||c>'9')
    19     {
    20         if(c=='-') w=-1;
    21         c=gc;
    22     }
    23     while(c>='0'&&c<='9') x=x*10+c-48,c=gc;
    24     return x*w;}
    25 const int N=1e6+5;
    26 int q[N],hd,tl;
    27 int n,k,a[N],ans;
    28 
    29 int main()
    30 {
    31     n=rd(),k=rd();
    32     FOR(i,1,n) a[i]=rd();
    33     hd=tl=1;ans=1e9;
    34     FOR(i,1,k-1) 
    35     {
    36         while(hd<=tl && a[q[tl]]>=a[i]) --tl;
    37         q[++tl]=i;
    38     }
    39     FOR(i,k,n)
    40     {
    41         while(hd<=tl && q[hd]<=i-k) ++hd;
    42         while(hd<=tl && a[q[tl]]>=a[i]) --tl;
    43         q[++tl]=i;
    44         printf("%d ",a[q[hd]]);
    45     }
    46     printf("
    ");
    47     hd=tl=1;ans=-(1e9);
    48     FOR(i,1,k-1)
    49     {
    50         while(hd<=tl && a[q[tl]]<=a[i]) --tl;
    51         q[++tl]=i;
    52     }
    53     FOR(i,k,n)
    54     {
    55         while(hd<=tl && q[hd]<=i-k) ++hd;
    56         while(hd<=tl && a[q[tl]]<=a[i]) --tl;
    57         q[++tl]=i;
    58         printf("%d ",a[q[hd]]);
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    对返回的json数据重写格式,用特性JsonConverter
    dev 的NavBarControl动态菜单
    获取oracel数据库的结构
    Java-背单词程序(俄语)
    实现同或操作 C++
    输入字符串先用cin后用getline函数失效原因
    C++全局变量与局部变量
    4.Redis事务
    3.持久化配置
    2.常用数据类型
  • 原文地址:https://www.cnblogs.com/universeplayer/p/10742529.html
Copyright © 2020-2023  润新知