很早以前做靜態第k大的時候聽到要用樹套樹就過於害怕逃走了,現在用分塊暴力過了之後又想用樹套樹a一遍,於是就寫了一下
starkmal的線段樹+splay常數卡出翔惹
#prag\
ma gcc optimize("o3")
#include #include #include #include #include #include #define mid (l+r>>1)
#define mid_1 ((l+r>>1)+1)
#define r(***) scanf("%d",&***)
#define dr(***,yyy) scanf("%d%d",&***,&yyy)
#define tr(***,yyy,zzz) scanf("%d%d%d",&***,&yyy,&zzz)
#define p(***) printf("%d\n",***)
#define lowbit(i) (i&-i)
using namespace std;
const int n = 50005;
int a[n], n, m, tot, max, _0, _1, _2;
char cmd;
int ver[n], c[26000010], v, d;
int xx[n], yy[n], ls[26000010], rs[26000010];
void update( int &p, int l, int r )
void modify()
int query()
else
} return l;
}int main()
while( m -- )
return 0;
}
主席樹 動態區間第k小
模板題在這裡洛谷2617。閱讀本文需要有主席樹的基礎,也就是通過區間kth的模板題。靜態整體kth sort一下找第k小,時間複雜度 o nlogn 動態整體kth 權值線段樹維護一下,時間複雜度 o nlogn 靜態區間kth 主席樹維護,時間複雜度 o nlogn 動態區間kth 就是本次的標題...
帶修改的區間第k小 樹狀陣列套主席樹
題目鏈結 對乙個序列進行兩種操作 對於不待修改的區間第k kk小,我們可以用主席樹完成。我們來看看只用主席樹如何完成帶修改的區間第k kk小。對於每次修改,我們都需要把當前位置及以後的主席樹都進行修改。因此每次修改的時間複雜度為o n log n o nlog n o nlog n 空間增加o n ...
區間第k大(主席樹)
學了一下主席樹模板題,當初看了網上的主席樹講解都沒有看懂,後面看了嗶哩嗶哩的uestc的主席樹,終於看懂了思想。每次更新的複雜度都為logn。每次更新的話就是對要更新的點路徑上的點重新更加乙個,然後進行對沒有影響的那些進行連邊。然後用乙個root記錄每乙個線段樹的根節點下標。include incl...