滑動視窗 洛谷T1866(單調佇列)

2022-05-24 06:36:06 字數 526 閱讀 8962

咕咕咕

單調佇列板子題

一、基本

1.單調佇列:

特殊的雙端佇列,內部元素。分為最大佇列(單調遞增)和最小佇列(單調遞減)兩種

二、應用

本題中:大部分單調佇列優化的動態規劃問題都和定長連續子區間的最值問題

#includeusing

namespace

std;

inline

intread()

while(ch >= '

0' && ch <= '9'

)

return sum *p;

}const

int n = 1e6 + 5

;int

n,k,head,tail;

inta[n],fn[n],fx[n],num[n],q[n];

void

dpmin()

}void

dpmax()

}int

main()

裸題

洛谷 1886 滑動視窗 單調佇列

單調佇列,就是字面意思。如何維護?假設我們是單調減的佇列 維護時,保證所有元素最多進隊一次出隊一次,複雜度o n 我們在隊頭放最大的元素,向右依次遞減。在隊尾插入新元素時,檢查新元素是否比隊尾元素大 是,則刪除隊尾元素,直到 比隊尾元素小時,插入新元素在隊尾。同時還要檢查一下,是否還在視窗範圍內 i...

洛谷1886 滑動視窗 模板 單調佇列

1886 題目描述 有乙個長為 nn 的序列 aa,以及乙個大小為 kk 的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1,3,1,3,5,3,6,7 and k 3。輸入格式 輸入一共有兩行,第一行有兩個正整數 n,kn...

單調佇列 洛谷P1886 滑動視窗

題目鏈結 dalao題解 題目給乙個長度為n的序列,然後給乙個值k,要求出長度為k的視窗在數列滑動過程中的最大值和最小值 圖示如下 比如給乙個長度為n 8的序列為 1 3 1 3 5 3 6 7 視窗長度是k 3 那麼視窗滑動中的 最小值就是 1 3 3 3 3 3 最大值就是 3 3 5 5 6 ...