当前位置: 代码迷 >> 综合 >> POJ 2823 Sliding Window滑窗
  详细解决方案

POJ 2823 Sliding Window滑窗

热度:54   发布时间:2023-12-19 16:04:15.0

金典的单调队列的题目。

题目大意给你n个数和一个k(0  < k ,n < 10^6),一个长度为k的窗口在长度为为n的序列滑动,没滑动一个位置,求出这个窗口里的最小值和最大值,先输出最小值得序列,再输出最大值的序列。

n很大不能在每一个窗口中去遍历出最小值跟最大值,这里用到一个单调队列。此处只做出最小值得序列求解,最大值序列同理。

用一个单调非严格递增的队列去维护此时最小值。

<pre name="code" class="cpp">
#include <cstdio>
#define MAXN 1000007
int arr[MAXN];
int que[MAXN * 10];
int read()//快速读入
{char ch;int v = 0, s = 1;while(ch = getchar(), ch == ' ' || ch == '\n' || ch == '\t');if(ch == '-') s = -1;else v = ch - '0';while(ch = getchar(), ch !&
  相关解决方案