P1886 滑動視窗

2021-10-09 01:51:48 字數 1273 閱讀 9674

有乙個長為n的序列a,以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。

例如:the array is [1,3,-1,-3,5,3,6,7], and k = 3。

輸入格式

輸入一共有兩行,第一行有兩個正整數 n,kn,k。 第二行 nn 個整數,表示序列 aa

輸出格式

輸出共兩行,第一行為每次視窗滑動的最小值

第二行為每次視窗滑動的最大值

輸入輸出樣例

輸入

831

3-1-

3536

7

輸出

-1-

3-3-

3333

3556

7

分析:

這道題是一道單調佇列的模板題,給定乙個固定區間為k,求區間的最大值,我們來看i,j兩個數,i.id=要入隊資料a[i],刪除隊尾元素;當隊頭<=i-k時,刪除隊頭元素。

#include

#include

#include

#include

#include

#include

#include

#include

#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);

using

namespace std;

const

int max=

2147483647

;const

int n=

1e6;

int n,k,a[n+10]

;struct node

que[n+10]

;int head=

1,tail=1;

intmain()

printf

("\n"

),head=

1,tail=1;

for(

int i=

1;i<=n;i++

)return0;

}

P1886 滑動視窗

現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入格式 輸入一共有兩行,第一行為n,k。第二行為n個數 輸出格式 輸出...

P1886 滑動視窗

現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入格式 輸入一共有兩行,第一行為n,k。第二行為n個數 輸出共兩行,第...

P1886 滑動視窗

現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入一共有兩行,第一行為n,k。第二行為n個數 輸出共兩行,第一行為每次...