
平衡树
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1492 货币兑换 Cash 平衡树维护凸包 CDQ分治
题目大意: 这题真是为难了我1B。。。做了三天,两种方法都试过了一遍,真是膜拜NOI的神犇们能在一个多小时内干掉这道题 首先这题一看就是斜率优化 连递推式都是P=A[i]*X[i]+B[i]*Y[i] 万事俱备 就是AB不单调! 斜率不单调其实也好办 反正是凸包 平衡树维护不就简单了 简单个熊啊!!! 第一天下午开始写,第二天早上还在调,下午才AC,写了足足5原创 2014-08-27 18:46:08 · 4186 阅读 · 3 评论 -
BZOJ 3991 Sdoi2015 寻宝游戏 树链的并
题目大意:给定一棵树,多次将某个点设为关键点或取消关键点,求虚树中边长总和的二倍 Orz wyfcyx 首先我们考虑树链的并(每个点到根节点的链的并集)怎么求 将虚树中的所有点按照DFS序排序,将每个点的深度统计入答案,将相邻两个点之间的LCA的深度从答案中扣除,就是所有点到根的链的并集的长度 但是我们要求的是虚树中的边长总和,因此我们还要减掉所有点LCA的深度 现在要求动态维护,因此我原创 2015-04-16 10:15:21 · 2335 阅读 · 0 评论 -
BZOJ 2947 Poi2000 促销 set
题目大意:给定n天,每天先插入一些数,然后取出最大值和最小值,付出最大值-最小值的代价,求n天后一共付出多少代价 堆/线段树/平衡树裸题 #include #include #include #include #include using namespace std; int n,m; long long ans; multiset s; int main() { int i,j,原创 2015-03-15 11:27:04 · 1313 阅读 · 0 评论 -
BZOJ 3544 ONTAK2010 Creative Accounting 平衡树
题目大意:给定一个序列,求一个区间之和mod m的值最大 维护一个前缀和,每次利用set寻找第一个比当前值大的数,如果找不到就去找整个set中最小的数,然后将当前前缀和加入set 注意set中upper_bound的写法 upper_bound(s.begin(),s.end(),a[i])是O(n)的 s.upper_bound(a[i])才是O(logn)的 好坑。。。。。 #in原创 2015-02-24 18:27:59 · 1383 阅读 · 0 评论 -
BZOJ 2300 HAOI2011 防线修建 平衡树维护凸包
题目大意:给定初始三个点(0,0)(n,0)和(x,y),以及若干其它点,q次询问,每次删除一个点或求一次上凸包长度 平衡树维护凸包……和cash同样的思路为何我时隔2个月后的代码整整短了150行…… 平衡树最好用set 链表的每个点存set的迭代器 直接erase很方便 这个题x值的下限和上限都是给定的 所以没有边界讨论 真赞~ 一气呵成写出来 调了一小时 尼玛加点我居然加反了0.0原创 2014-11-02 15:56:27 · 2018 阅读 · 0 评论 -
POJ 3580 SuperMemo Splay
题目大意:维护一个序列,提供一些操作: 1.将一个区间加上一个值 2.翻转一个区间 3.将一个区间内的数字旋转T次(每次旋转区间内每个元素向右移一位,最右一个移动到最左面去) 4.在一个元素后面插入一个数 5.删除某个元素 6.查询区间最小值 写过BZOJ那几道Splay之后这题就变得非常水了。。。只是有几个要点需要注意: 1.操作3的T可能大于区间长度 还可能是负的 所以一定要取原创 2014-09-22 13:24:39 · 1499 阅读 · 0 评论 -
BZOJ 2329 HNOI2011 括号修复 Splay
ああああああああああああああ——散弾铳とテレキャスター 言叶の整列、アンハッピー 単身、都会の町并み 撃ち込んだ音、嫌いですか? 题目大意:给定一个括号序列,提供四种操作: 1.将一段区间内的所有括号的变成'('或者')' 2.将一段区间反转 3.将一段区间内的所有括号翻转,即'('变成‘)',')'变成'(' 4.查询一段区间内要将至少多少个括号翻转才能变成一个合法的括号序列原创 2014-09-19 18:12:29 · 1947 阅读 · 0 评论 -
BZOJ 1500 NOI2005 维修数列 Splay
我尽力了。。。从之前的递归版Splay变成非递归,然后各种删除冗余的操作,除了蛋疼的读入优化基本已经精简到底了,连传参都省了-0- 刚交上去是10956MS,差4MS就是BZOJ倒数第一,改完了是9244MS,快了一秒。。。单点测还是死活过不去,等加上读入优化再说吧 题目大意:维护一个序列,支持六种操作: 1.在某个数后面插入一些数字 2.删除从某个数开始的一些数字 3.把从某个数开始的一原创 2014-09-18 19:50:39 · 1866 阅读 · 0 评论 -
BZOJ 3196 二逼平衡树 树套树
题目大意:。。。BZOJ挂了自己看去 好吧既然BZOJ挂了我还是贴上来吧0.0 破服务器 维护一种数据结构,提供下列操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 其实一开始觉得这题是划分树主席树之类的 然后去了解了一下发现原创 2014-09-23 16:52:43 · 2339 阅读 · 0 评论 -
BZOJ 3306 树 Link-Cut-Tree+set
题目大意:给定一棵有根树,每个点有个权值,要求维护换根、单点修改、查询子树最小值闲得我写了发LCT…… (这段时间咋净写LCT了。。。每个节点开一个multiset记录一下所有虚边连接的子树的最小值 然后切换虚边的时候把原来的实边连接的子树扔进multiset,把新的实边连接的子树从multiset里删除就行了 时间复杂度O(nlog2n)O(nlog^2n)#include <set> #i原创 2015-09-06 20:54:43 · 1910 阅读 · 0 评论