LOJ 持久化序列 可持久化treap

2021-08-30 11:40:27 字數 862 閱讀 5608

一道模板題 在寫完這道題以後就去找其他帶翻轉的可持久化treap題去寫了

發現自己根本不會可持久化treap 什麼標記翻轉可持久化 自閉了一整天

網上也沒有找到很好的模板 於是選擇擱置一段時間 等以後時間充裕了再來磕

#includeusing namespace std;

const int maxn=5e5+5;

struct node

tree[maxn*30];

int s[maxn*30];

int tot;

int root[maxn];

int seed=233,siz;

int rand()

void pushup(int now)

int newnode()

int copynode(int now)

int merge(int a,int b)

else

pushup(r);

return t;

}void insert(int k,int now,int val)

void free(int x)

void del(int k,int now)

int query(int now,int k)

int main()

int k,x;

scanf("%d%d",&k,&x);

insert(k,id,x);

}else if(op==2)

int k;

scanf("%d",&k);

del(k,id);

}else if(op==3)

}return 0;

}

loj6088 可持久化最長不降子串行

考慮二分求lis的過程,就是維護乙個序列,其中第i個數表示長度為i的最小結尾,而插入操作就是查詢第乙個大於x的位置並替換掉 用線段樹維護,二分的過程也可以用線段樹來完成,對線段樹可持久化即可 1 include2 using namespace std 3 define n 500005 4 def...

題解 loj120 持久化序列

由於ut並不會可持久化平衡樹,因此他決定用一種奇怪的方法ac此題。空間 線性。缺點 離線。首先,每個更新 查詢都是基於乙個歷史版本的。查詢先不管,就看更新,相當於每個點有乙個 父親 總的形成乙個樹結構 每個更新,相當於樹上的一條邊。然後轉回來處理查詢,可以認為是在每個節點後面拖了一串詢問。那接著怎麼...

LOJ120 持久化序列 rope

使用rope,需要引入標頭檔案ext rope,並且使用命名空間 gnu cxx 定義roperp 簡單用例 rope rp maxn his 0 new rope his i new rope his i 1 常見操作 功能 push back x 在末尾追加元素x insert pos,x 插入...