解決rmq(查詢區間最大/最小值問題)
複雜度:o(nlogn)
f[i][st]表示將作為區間左界,長度為2^st的區間的最大值。
st的最大值為 log2(n)
查詢上會比線段樹快
例題:1.p3865 【模板】st表
#include#include#include#include#include#includeusing namespace std;
int n,q;
int f[100001][22],a[100001];
inline int gi()
while(c>='0' && c<='9')
return f*sum;
}void st()
for(register int j=1;j<=k;j++)
for(register int i=1;i<=n-(1
int main()
return 0;
}
ST表(倍增表)
介紹st表之前先看看rmq問題是什麼東西吧 rmq range maximum minimum query 顧名思義,這就是指區間最大或最小值 區間最值 st表 spars table,一種可以解決rmq的,基於倍增的資料結構 令 f i j 表示從 i 開始連續 2 j 個數中的最值,如果 i 後...
演算法 ST表
想學習一下lca倍增,先 水乙個黃題 學一下st表 這是乙個運用倍增思想,通過動態規劃來計算區間最值的演算法 求出區間最值 回答詢問 求出區間最值 用 f i j 來儲存從第 j 個點開始,向後 2 i 1 個點 共 2 i 個點 中的最值 包括本身 利用二分法的思想,將區間 j,j 2 i 1 平...
ST(稀疏表)演算法
作用 st演算法是用來求解給定區間rmq的最值,本文以最小值為例 舉例 給出一陣列a 0 5 則區間 2,5 之間的最值為1。1 離線預處理 運用dp思想,用於求解區間最值,並儲存到乙個二維陣列中。具體解釋 1 離線預處理 st演算法使用dp思想求解區間最值,貌似屬於區間動態規劃,不過區間在增加時,...