心得 單調佇列

2022-05-17 17:15:00 字數 683 閱讀 3481

單調佇列

其實是初二就學的,但是當時只是會做幾道例題,沒有總結規律,現在看入門經典時突然感覺以前學的時候太不仔細了,漏過很多細節,於是來填(wa)個坑。

先抄幾道例題(其實例題都屬於「滑動視窗」一欄,但其實思想一樣,直接被我歸納為單調佇列了)

1.window 不解釋

知道單調佇列的應該都知道window。

window作為一道經典例題,體現了單調佇列的基本特徵

1.只關心最優解(要求前n個最優解請出門左拐找隔壁優先佇列,單調佇列的佇列裡可能只有1個答案)

3.多快好省(所有沒用的都被自動排除,而且均攤下來每次操作時間才常數)

2.defense lines,uva1471

刪掉一段連續的子串行,剩下的序列裡最長連續遞增子串行

先上個暴力

列舉刪掉的子串行的頭尾o(n2),統計長度o(n)

總複雜度n3

忘記說了,n範圍200,000

所以怎麼降?

首先很明顯統計長度的n是不需要的,預處理一下就好了

還有n2

差點忘了主題單調佇列(當然考試的話題目不會告訴你這道題是單調佇列,但是看著滑動的乙個東西就像)

樹上並沒有說這是單調佇列,但我覺得這實際上還是換湯不換藥,把各方面表現都很辣雞(不但沒有別人好還比別人死得早)的結果捨去,最後樹上說複雜度為nlgn(為什麼感覺像n,是不是哪漏算了)

單調棧,單調佇列

大多數借鑑了 單調佇列是什麼呢?可以直接從問題開始來展開。poj 2823 給定乙個數列,從左至右輸出每個長度為m的數列段內的最小數和最大數。數列長度 n 106,m n 我們知道,解法 在暴力列舉的過程中,有乙個地方是重複比較了,就是在找當前的f i 的時候,i的前面其它m 1個數在算f i 1 ...

單調棧 單調佇列

單調棧 單調佇列是在棧和佇列的基礎上加上單調結構的資料結構。如果乙個元素入棧或入隊,他會檢查之前的元素,如果之前的元素不可能是答案的解,那麼就彈出元素,使得當前元素入棧或入隊。leetcode 239 滑動視窗最大值 此題是單調佇列,每次遇到乙個元素,一直從隊尾彈出,直到隊尾元素大於該元素為止。還需...

單調棧 單調佇列

啊學完了來寫個總結吧 顧名思義,單調,就是指色彩單一某乙個容器裡面的元素都是遞增或遞減的,而單調棧和單調佇列就是這個容器。單調棧 單調棧模板 其他的我就不說了,講下為什麼單調棧是從後往前掃瞄 當我們在判斷乙個數後面第乙個比它大的數時,前提是後面的數已經被處理了,所以我們要從後往前掃瞄。我做了兩種做法...