滑動視窗(luogu 1886)

2022-05-12 23:41:29 字數 848 閱讀 6934

現在有一堆數字共n個數字(n<=10^6),以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。

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

輸入格式:

輸入一共有兩行,第一行為n,k。

第二行為n個數(

輸出格式:

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

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

輸入樣例

8 3

1 3 -1 -3 5 3 6 7

輸出樣例

-1 -3 -3 -3 3 3

3 3 5 5 6 7

50%的資料,n<=10^5

100%的資料,n<=10^6

思路:一道模板,思想很好理解,我認為難在判斷區間,超了你得 head++ ,不符單調你得 tail--

**

#include#includeusing namespace std;

const int mx=1e6+1;

int n,k,p[mx],q[mx],a[mx];

void getmax()

}void getmin()

printf("\n");

}int main()

getmin();

getmax();

return 0;}/*

8 31 3 -1 -3 5 3 6 7

*/

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的序列a,以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1,3,1,3,5,3,6,7 and k 3。輸入格式 輸入一共有兩行,第一行有兩個正整數 n,kn,k。第二行 nn 個整數,表示序列...