poj3264 rmq演算法學習 ST表

2022-05-01 23:15:09 字數 501 閱讀 2811

解題關鍵:rmq模板題,可以用st表,亦可用線段樹等資料結構

log10和log2都可,這裡用到了對數的換底公式

類似於區間dp,用到了倍增的思想

$f[i][j] = \min (f[i][j - 1],f[i + 1 <  < (j - 1)][j - 1])$

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8 typedef long

long

ll;9

int a[50002

];10

intlg;

11int min1[50002][22],max1[50002][22

],n,q;

12void rmq(int

n)18}19

}20intmain()

38 }

POJ 3264 RMQ 分塊演算法

題目連線 分塊演算法 將n個數 每sqrt n 個數分成乙個塊,每乙個塊中加入乙個value域儲存這個塊的最大值,查詢的時候左右兩個塊在原序列上遍歷查詢最大值,中間的區間直接在預處理的塊上查詢最大值,複雜度為 o sqrt n include include include define sf sc...

poj 3264 RMQ問題 ST演算法

部落格已遷至 www.lfy2us.com 比較裸的rmq問題,即對乙個無序陣列,查詢q次,每次查詢某個區間內最大值與最小值之差。解決此問題的演算法有三種 1 最簡單的方法就是o n 了 2 線段樹 3 st sparse table 演算法 其中st演算法為解此問題的最佳方法 預處理時間複雜度o ...

POJ 3264 RMQ問題 ST演算法

因為之前都是線段樹解決rmq問題,省腦子 因為寫的順手 但是因為rmq畢竟常數大,而且其實程式還相對st要長 以前寫過st演算法,但是因為每次都在糾結到底 1 呢,還是 1呢,邊界問題處理的我蛋都碎了好幾次,這次重新學習了一下st sparse table 演算法,好好的處理了這些問題的理解。st演...