刚刚接触队列!!是在惭愧,仔细研读了别人的代码写的!!!!!
用两个队列分别是q1,q2,一个是维护最大值,一个维护最小值,q1里严格遵守从大到小,q2严格遵守从小到大!!!不断输出q1,q2的队首,就是最大值最小值
#include<iostream>
#include<deque>
using namespace std;
const int x=1000010;
int h[x],l[x],a[x];
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
deque<int> q1,q2;
q1.clear();
q2.clear();
for(int i=1;i<=n;i++)
{
while(!q1.empty()&&a[i]>a[q1.back()])
q1.pop_back();
while(!q1.empty()&&i-k+1>q1.front())
q1.pop_front();
q1.push_back(i);
h[i]=a[q1.front()];
while(!q2.empty()&&a[i]<a[q2.back()])
q2.pop_back();
while(!q2.empty()&&i-k+1>q2.front())
q2.pop_front();
q2.push_back(i);
l[i]=a[q2.front()];
}
for(int i=k;i<=n;i++)
{
if(i==n)
printf("%d\n",l[i]);
else
printf("%d ",l[i]);
}
for(int i=k;i<=n;i++)
{
if(i==n)
printf("%d\n",h[i]);
else
printf("%d ",h[i]);
}
}
return 0;
}

poj 2823 Sliding Window 双向队列,学习相关推荐

  1. POJ 2823 Sliding Window (单调队列)

    单调队列 加了读入挂比不加更慢.... 而且这份代码要交c++ 有大神G++跑了700ms..... orzorzorz #include<iostream> #include<cs ...

  2. POJ 2823 Sliding Window

    Sliding Window 链接:http://poj.org/problem?id=2823 Time Limit: 12000MS   Memory Limit: 65536K       Ca ...

  3. POJ 2823 Sliding Window(单调队列)

    http://poj.org/problem?id=2823 题意: 给出数组和滑动窗口的大小,每次输出滑动窗口中的最大值和最小值. 思路: 这题可以算是单调队列的模板题了,分别维护单调递增和单调递减 ...

  4. 【POJ】2823 Sliding Window

    单调队列. 1 /* 2823 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> ...

  5. Sliding Window 单调队列解决--经典滑动窗口问题--求窗口的最大值最小值

    http://poj.org/problem?id=2823 这就要用到单调递减或单调递增队列来实现,它的头元素一直是队列中的最小值或最大值.我们可以从队列的末尾插入一个元素,可以从队列的两端删除元素 ...

  6. POJ2823 Sliding Window 单调队列

    题目大意 给出一段序列,一个长度一定的窗口从左到右滑动.求窗口滑动到每个位置时窗口内数字的最大值.最小值各是多少.n<=1e6. 总体思路 遇到这种对一个沿着一个方向滑动的区间求最值问题,可以运 ...

  7. 【POJ - 2823】 Sliding Window(单调队列 用双端队列实现或模拟队列)

    题干: An array of size n ≤ 10 6 is given to you. There is a sliding window of size k which is moving f ...

  8. Sliding Window滑动窗口(单调队列)

    Sliding Window滑动窗口 POJ - 2823 目录 Sliding Window滑动窗口 POJ - 2823 题意描述 解题思路 AC代码 An array of size n ≤ 1 ...

  9. POJ2823 Sliding Window【单调队列】【线段树】【ST表】

    Sliding Window POJ - 2823 题意: 给出一个长度为N的序列,通过一个窗口,可以看到序列中连续的K个元素,窗口从最左边出发,每次移动一个单位,对于每次移动,输出当前窗口中的最大值 ...

  10. Sliding Window(单调队列)

    题目 An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving fro ...

最新文章

  1. linux kill信号列表
  2. anaconda配置环境变量
  3. python3基础知识_python3基础知识梳理
  4. arguments.callee()事例 参数检验
  5. github创建一个新的tag
  6. hashmap储存有向图_以邻接表的形式创建带权值的有向图即有向网
  7. vscode remote免密登录
  8. Linux NTP服务配置
  9. 中海达ihand30手簿详细教程_开盘秒清,中海这次模拟选房结果恐将成真
  10. ARM体系结构与编程模型总结
  11. 5G Wifi频段及信道介绍
  12. Qpainter事件
  13. 关于CSS居中显示的总结
  14. 蓝桥杯大赛——练习系统登录
  15. 火车没有方向盘操纵转向,如何实现换轨?看完涨知识了
  16. Windows如何彻底删除.sys后缀的流氓文件
  17. AB计算机总线,什么是总线?简要说明AB、DB、CB的含义及其性能?
  18. 人工智能应用最多的七大领域解析
  19. CEF 进程间消息传递
  20. react - 利用a标签,完成下载及跳转

热门文章

  1. Android进阶篇-Http协议
  2. sqlserver shiwu
  3. 10分钟开始使用ICTCLAS Java版
  4. shell 脚本编程总结
  5. Windows Server 2012 克隆修改SID
  6. MySQLdb 1031 Error
  7. 关于matlab中 CC = bwconncomp(A,4)命令的问题
  8. Wavegrove Maji+ for Mac - 饱和压缩器插件
  9. mac上捕获Dock截图的方法
  10. Mac 上删除用户或群组教程