洛谷P1886 滑動視窗 單調佇列

2022-08-21 08:15:10 字數 956 閱讀 6698

沒想到啊沒想到,時隔兩個月,我單調佇列又懵了……

調了乙個小時,最後錯在快讀,啊!!!!(不過洛谷討論真好啊,感謝大佬!)

考前就不推新東西了,好好寫寫那些學過的東西

題目點這裡(我就不粘了自己點一下看吧)

這題還有其他奇奇怪怪的做法,比如你可以當做rmq,用線段樹啊st表啊隨便你,不過單調佇列就可以了

單調佇列說到底就是個資料結構,就是維護資料的。

以當前這道題為例:

它維護的佇列一定滿足單調性,單調遞增或遞減,或者自定義乙個單調性。

如何維護呢,假設當前隊尾為q [ tail ], 要插入元素為 a [ i ]

這題既然要求最大值和最小值,就求兩遍嘛!

下面是**

#include#include

#include

using

namespace

std;

int n,k,a[1000001],q[1000001],p[1000001

],head,tail;

inline

intread() //

就是這裡!!!!記住它!!!

while (c<='

9'&&c>='

0') x=x*10+c-48,c=getchar();

x*=flag;

returnx;}

//這個坑死我的快讀啊!!!!!!考前一定要多打幾遍

intmain()

cout

;

//求 max ,模擬求 min

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

return

18751214;//

快考試啦不要抄答案!!!(給我自己

}

就是這些,csp快到啦,rp++!!

慣例ありがとうございます

單調佇列 洛谷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 ...

洛谷 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 m role presentation n,m n,m和乙個含有 n role presentation n n個元素的數列,求每個連續的長度為 m role presentation m m的子串的最小值和最大值。暴力o n2 role presentation o n 2 o n2 可以...