zoukankan      html  css  js  c++  java
  • poj 2823 Sliding Window

    这题是典型的单调队列,百度一下,堆、线段树、树状数组、稀疏表……我通通不会。只好抄了一个纯粹的用数组模拟的算法,脑细胞阵亡无数,才算理解了。

     1 #include<stdio.h>
     2 #define maxn 1000001
     3 int min_1[maxn],max_1[maxn],a[maxn],n,k;
     4 void get_max()
     5 {
     6     int i,start=1,end=1;
     7     for(i=1;i<k;i++)
     8     {
     9         while(a[max_1[end]]<a[i]&&end>=start)
    10             end--;
    11         end++;
    12         max_1[end]=i;
    13     }
    14     for(i=k;i<=n;i++)
    15     {
    16         while(max_1[start]<=i-k&&start<=end)
    17             start++;
    18         while(a[max_1[end]]<a[i]&&end>=start)
    19             end--;
    20         end++;
    21         max_1[end]=i;
    22         if(i!=n)printf("%d ",a[max_1[start]]);
    23     }
    24     printf("%d\n",a[max_1[start]]);
    25 }
    26 void get_min()
    27 {
    28     int i,start=1,end=1;
    29     for(i=1;i<k;i++)
    30     {
    31         while(a[min_1[end]]>a[i]&&end>=start)
    32             end--;
    33         end++;
    34         min_1[end]=i;
    35     }
    36     for(i=k;i<=n;i++)
    37     {
    38         while(min_1[start]<=i-k&&start<=end)
    39             start++;
    40         while(a[min_1[end]]>a[i]&&end>=start)
    41             end--;
    42         end++;
    43         min_1[end]=i;
    44         if(i!=n)printf("%d ",a[min_1[start]]);
    45     }
    46     printf("%d\n",a[min_1[start]]);
    47 }
    48 int main()
    49 {
    50     while(~scanf("%d%d",&n,&k))
    51     {
    52         for(int i=1;i<=n;i++)
    53             scanf("%d",&a[i]);
    54         get_min();
    55         get_max();
    56     }
    57     return 0;
    58 }


    最郁闷的是,老是OLE,真是郁闷死我了,怎么可能多输出呢?后来在scanf前加了~就解决了,原因嘛,你懂滴。

  • 相关阅读:
    PowerDesigner通过SQL文件,反向生成模型
    跨域请求设置
    SSO单点登录与登出
    jwt使用
    git概念理解
    Slf4j MDC机制
    ASP.NET Core依赖注入最佳实践,提示&技巧
    EFCore数据库迁移命令整理
    RSA加密的使用
    CocoaPods 安装的第三方删除
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/2476198.html
Copyright © 2011-2022 走看看