P3834 模板 可持久化線段樹 1(主席樹)

2022-05-13 16:58:50 字數 957 閱讀 9914

如題,給定n個整數構成的序列,將對於指定的閉區間查詢其區間內的第k小值。

第一行包含兩個正整數n、m,分別表示序列的長度和查詢的個數。

第二行包含n個整數,表示這個序列各項的數字。

接下來m行每行包含三個整數l,r,k l, r, kl,r,k , 表示查詢區間[l,r][l, r][l,r]內的第k小值。

輸出包含k行,每行1個整數,依次表示每一次查詢的結果

輸入樣例#1:

5 525957 6405 15770 26287 26465

2 2 1

3 4 1

4 5 1

1 2 2

4 4 1

輸出樣例#1:

6405

15770

26287

25957

26287

\(1 \leq n, m \leq 2\cdot 10^5\)

對於數列中的所有數\(a_i\),均滿足\(-^9 \leq a_i \leq ^9\)

複習模板題,順便寫個部落格吧,封裝成立乙個類。

#includeusing namespace std;

#define ll long long

#define n 200050

int n,m,a[n],kth[n],rt[n];

templatevoid read(t&x)

void read_char(char &c)

struct primetree

tr[n*22];

int num;

void bt(int &x,int l,int r)

void add(int &x,int last,int p)

int ask(int x,int y,int k)

void init()

}a;int main()

}

P3834 模板 可持久化線段樹 1(主席樹)

主席樹 菜雞看了乙個晚上的時間才懂。感覺網上的部落格大都大亂。我也是找到了幾遍好一點的看了一下。參考部落格 參考部落格 首先,會主席樹的前提是會線段樹。還有,我們一般在用線段樹的時候,下標位置大都是採用了i 2 和i 2 1來作為i號的左右孩子。但是,在主席樹中,我們不可以把這種思想帶過來。因為主席...

P3834 模板 可持久化線段樹 1(主席樹)

這是個非常經典的主席樹入門題 靜態區間第k小 資料已經過加強,請使用主席樹。同時請注意常數優化 如題,給定n個整數構成的序列,將對於指定的閉區間查詢其區間內的第k小值。第一行包含兩個正整數n m,分別表示序列的長度和查詢的個數。第二行包含n個整數,表示這個序列各項的數字。接下來m行每行包含三個整數l...

P3834 模板 可持久化線段樹 1(主席樹)

傳送門 板子,大佬的題解寫的真好 ps 看了看attack大佬的板子 跑的飛快 然後抄了抄 慢的要命 評測機玄學問題?真不知道大佬常數怎麼寫的 更神仙的是大佬居然都不先建樹直接加點 怎麼過的orz 1 luogu judger enable o22 minamoto 3 include4 defin...