ST表 洛谷 P3865 ST表模板題

2021-09-26 07:04:05 字數 563 閱讀 7871

首先,來說說為什麼學st表哈。

st表類似於樹狀陣列和線段樹這兩種資料結構

在解決rmq問題時,st表和線段樹的預處理時間複雜度都是o(nlogn),兩者的不同在於,在查詢rmq答案時,st表的時間複雜度為o(1),而線段樹卻有 o (logn),這是st表的優勢就完全體現出來了。

st表實際上是乙個二維陣列 st[i] [j],含義是:從下標i 到下標 i+2^j-1 的最值

因為是可以直接套用的模板,所以就直接上**了:

//st表模板題

#include

using namespace std;

const

int maxn=

1e5+7;

int n,m,l,r;

int a[maxn]

;int st[maxn][20

];void

pre(

)int

getans

(int l,

int r)

intmain()

return0;

}

ST表 (模板) 洛谷3865

題目背景 這是一道st表經典題 靜態區間最大值 請注意最大資料時限只有0.8s,資料強度不低,請務必保證你的每次查詢複雜度為 o 1 o 1 題目描述 給定乙個長度為 n n 的數列,和 m m 次詢問,求出每一次詢問的區間內數字的最大值。輸入輸出格式 輸入格式 第一行包含兩個整數 n,m n,m ...

ST表 (模板) 洛谷3865

題目背景 這是一道st表經典題 靜態區間最大值 請注意最大資料時限只有0.8s,資料強度不低,請務必保證你的每次查詢複雜度為 o 1 o 1 題目描述 給定乙個長度為 n n 的數列,和 m m 次詢問,求出每一次詢問的區間內數字的最大值。輸入輸出格式 輸入格式 第一行包含兩個整數 n,m n,m ...

模板 ST表 洛谷P3865

題目背景 這是一道st表經典題 靜態區間最大值 請注意最大資料時限只有0.8s,資料強度不低,請務必保證你的每次查詢複雜度為 o 1 題目描述 給定乙個長度為 n 的數列,和 m 次詢問,求出每一次詢問的區間內數字的最大值。輸入輸出格式 輸入格式 第一行包含兩個整數 n,m 分別表示數列的長度和詢問...