
平衡树
silentsaber~
晨意微寒秋渐深,侧畔无事俏佳人
展开
-
小练习,splay区间反转
一道codevs的区间翻转问题。http://codevs.cn/problem/1743/题意,每次找最左边的数,令为k: k=1,结束; 否则,ans++,翻转[1,k].(给定的是全排列,所以,加两个点就可以直接做了。)题目中说可能无解,但我觉得应该有解,所以就没管-1. 求大神指导一下到底是否一定有解。(当然最好定义一个较大的操作数,大于此操作数仍无法原创 2015-12-11 09:40:21 · 1387 阅读 · 0 评论 -
感人至深,splay的代码量
A Simple Problem with Integers线段树大法好 splay码量太长了。但是为了早日掌握splay,还是作死的写了一下http://poj.org/problem?id=3468就是线段树区间操作,lazy标记。只不过用splay实现。写完之后发现,以前认为线段树代码量长,现在~~~~~~~--------------------------原创 2015-12-11 09:57:00 · 564 阅读 · 0 评论 -
splay的入门
splay玄学,神奇,多变,应用广。均摊时间复杂度O(n log n) (不会证明,好像都是这么说“可以证明”的,单次最坏情况是O(n),但是平均下来是n log n).思路很简单,基于rotate操作,和splay把某个点旋到那个节点之下。几乎所有的操作都需要splay.花了好长时间研究怎么写更简便,之后总结出了属于自己的参考模板。(功能不全,基于bzoj1588的)原创 2015-12-04 15:00:05 · 879 阅读 · 0 评论 -
splay区间翻转及删除区间,平移区间
研究了很长时间,花费了一个下午debug,终于调出来了hdu 3487 play with chainhttp://acm.hdu.edu.cn/showproblem.php?pid=3487两个操作(指针实现)cut l,r, c把[l,r]剪下来放到剩下序列中第c个后面的位置.flip l r 把[l,r]翻转(lazy标记,每次交换左右节点)原创 2015-12-06 17:27:04 · 3418 阅读 · 0 评论 -
方伯伯的oj bzoj3594
http://www.lydsy.com/JudgeOnline/problem.php?id=3594(貌似比维护数列更恶心QAQ,虽然我只是看了一眼不想写)这道题真够恶心,它坑了我一上午~~还是下午来的时候调出来的。原创 2016-03-30 16:58:59 · 514 阅读 · 0 评论 -
bzoj1503 splay
运用一个整体变量处理全局修改,在减工资的时候处理删除。反正我是不会的,理解了别人的代码(改成了指针):int del(node *&u,node *f){ if(u==null)return 0; int k;//删除人数 if(u->key+lazy<m) { k=del(u->ch[1],u)+u->ch[0]->sz+1; u->ch[1]->sz=u->sz-k原创 2016-03-24 11:15:06 · 348 阅读 · 0 评论