treap的合并

来源:互联网 发布:农业科技网络书屋网站 编辑:程序博客网 时间:2024/06/13 11:49

先orzhgr

http://repository.cmu.edu/cgi/viewcontent.cgi?article=2273&context=compsci
根节点的k值比较小的那棵树的根为x,另一棵树的根为y
大概就是把y那整棵树按x.v剖开,两边分开合并
合并一次的时间复杂度是O(nlogmn)(nm),但是常数很大。
实测bzoj3545
线段树合并:1364ms
kruskal重构树+可持久化线段树:1883ms
treap合并:2020ms,tle
hgr大爷的treap合并:1000ms
gjs大爷的线段树合并:710ms

好像并没有多快啊
既然treap合并没有线段树合并跑得快,又没有线段树合并好写,那么我们就可以把它扔进垃圾桶了。