随笔分类 -  数据结构-平衡树

摘要:从这里开始 比赛目录 从这里开始 比赛目录 我菜爆了。 Problem A As Simple as One and Two 我会 AC 自动机上 dp。 one 和 two 删掉中间的字符,twone 删掉中间的 o。 Code Problem B Two Fairs 考虑删掉 a, b 把连通块 阅读全文
posted @ 2019-12-18 20:42 阿波罗2003 阅读(328) 评论(0) 推荐(0) 编辑
摘要:题目传送门 传送点I 传送点II 题目大意 (家喻户晓的题目应该不需要大意) (我之前咋把NOIP 2017打成了NOIP 2018,好绝望) 题目传送门 传送点I 传送点II 题目大意 (家喻户晓的题目应该不需要大意) (我之前咋把NOIP 2017打成了NOIP 2018,好绝望) Soluti 阅读全文
posted @ 2018-10-15 13:31 阿波罗2003 阅读(435) 评论(0) 推荐(0) 编辑
摘要:Description 小Y最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券)。每个持有金券的顾客都有一个自己的帐户。金券的数目可以是一个实数。每天随着市场的起伏波动, 两种金券都有自己当时的价值,即每一单位金券当天可以兑换的人民币数目。 阅读全文
posted @ 2018-01-07 13:26 阿波罗2003 阅读(282) 评论(0) 推荐(0) 编辑
摘要:无旋转Treap是一个神奇的数据结构,能够支持插入,删除,查询k大,查询某个数的排名,查询前驱后继,支持各种区间操作和持久化。基于旋转的Treap无法实现区间反转等操作,但是无旋Treap可以轻易地支持区间操作。那为什么区间操作不用Splay而要去学无旋转Treap?原因很简单,Splay的时间复杂 阅读全文
posted @ 2017-12-23 23:07 阿波罗2003 阅读(911) 评论(0) 推荐(0) 编辑
摘要:题目都是图片,就不给了,就给链接好了 由于bzoj比较慢,就先给[vjudge传送门] 有兴趣的可以去逛bzoj[bzoj传送门] 题目大意 有n个数a[1],a[2],...,a[n],它们开始都是0,现在有两种操作 1)C l r k,给a[k]赋值为(a[l], a[r]) 2)Q l r,找 阅读全文
posted @ 2017-03-20 22:03 阿波罗2003 阅读(339) 评论(0) 推荐(0) 编辑
摘要:第一题就LCA即可。不过推荐用Tarjan(最快,常数很小)。然后Tarjan的时候顺便就出一个dist[i],表示i节点到根节点的距离。求出了LCA,那么两点间的距离就为dist[u] + dist[v] - 2 * dist[lca]。 Code 1 #include<iostream> 2 # 阅读全文
posted @ 2017-01-22 21:57 阿波罗2003 阅读(197) 评论(1) 推荐(0) 编辑
摘要:替罪羊树是不通过旋转而是重构来维护节点平衡的一种平衡树。当某一棵子树的节点总数超过其父节点的一定时,就进行重构操作。 目录 节点定义 重构操作 插入操作 删除操作 其他各种操作 完整代码&总结 目录 节点定义 为了判断是否需要重构,所以需要加入cover(实际节点个数)域。这次直接加入可重操作,所以 阅读全文
posted @ 2017-01-18 22:07 阿波罗2003 阅读(685) 评论(0) 推荐(0) 编辑
摘要:1861: [Zjoi2006]Book 书架 Description 小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记 阅读全文
posted @ 2017-01-15 21:05 阿波罗2003 阅读(199) 评论(0) 推荐(0) 编辑
摘要:3223: Tyvj 1729 文艺平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 您需要写一种数据结构(可参考题目标题),来维护一 阅读全文
posted @ 2017-01-15 20:21 阿波罗2003 阅读(171) 评论(0) 推荐(0) 编辑
摘要:Splay树,又叫伸展树,可以实现快速分裂合并一个序列,几乎可以完成平衡树的所有操作。其中最重要的操作是将指定节点伸展到指定位置, 目录 节点定义 旋转操作 伸展操作 插入操作 删除操作 lower_bound&upper_bound 前驱后继操作 可重Splay 名次操作 区间操作 目录 节点定义 阅读全文
posted @ 2017-01-15 10:41 阿波罗2003 阅读(604) 评论(0) 推荐(0) 编辑
摘要:[写在前面的话] 如果想学Treap,请先了解BST和BST的旋转 二叉搜索树(BST)(百度百科):[here] 英文好的读者可以戳这里(维基百科) 自己的博客:关于旋转(很水,顶多就算是了解怎么旋转,建议自行上百度)[here] Treap(= binary search Tree + Heap 阅读全文
posted @ 2017-01-14 09:28 阿波罗2003 阅读(767) 评论(0) 推荐(0) 编辑