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