Luogu P1886 滑動視窗

2022-05-05 16:51:26 字數 437 閱讀 5408

傳送門此題為單調佇列入門題。單調佇列,可以\(o(n)\)求一段數列中區間極值。記錄佇列中元素大小與該元素在原陣列中的位置。當隊首元素超出當前求值區間時,頭指標加一;當當前將入隊元素大於或小於尾元素時,尾指標減一,直到不符合上一條件時,將當前元素入隊。然後要求極值只需輸出隊首元素即可。

#include const int maxn = 1000001;

int n, k;

int a[maxn], que[maxn], id[maxn], head, tail;

int main()

printf("\n");

head = 1; tail = 0;

for (int i = 1; i <= n; ++i)

printf("\n");

return 0;

}

luogu P1886 滑動視窗

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

Luogu P1886 滑動視窗

題目鏈結 單調佇列優化dp板子 單調佇列優化dp定長連續區間最值問題 include include define fora i,s,e for int i s i e i define fors i,s,e for int i s i e i define gc getchar pa pb pb ...

luoguP1886 滑動視窗 單調佇列

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