LOJ120 持久化序列 rope

2022-06-06 23:06:13 字數 833 閱讀 1213

使用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)

插入元素x使得它成為序列第pos

erase(pos,x)

pos開始刪除k

replace(pos,x)

pos開始替換成x

at(x)

訪問第x個元素

原題**

#include #include using namespace std;

using namespace __gnu_cxx;

const int n = 300005;

int n,tot,opt,t,k,x;

rope * s[n];

signed main()

}}

題解 loj120 持久化序列

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

LOJ 持久化序列 可持久化treap

一道模板題 在寫完這道題以後就去找其他帶翻轉的可持久化treap題去寫了 發現自己根本不會可持久化treap 什麼標記翻轉可持久化 自閉了一整天 網上也沒有找到很好的模板 於是選擇擱置一段時間 等以後時間充裕了再來磕 includeusing namespace std const int maxn...

rope(可持久化平衡樹)

include using namespace gnu cxx rope a,text test.push back x 在末尾新增x test.insert pos,x 在pos插入x test.erase pos,x 從pos開始刪除x個 test.copy pos,len,x 從pos開始到p...