
线段树&splay
gyarenas
这个作者很懒,什么都没留下…
展开
-
hdoj 3436 queue-jumpers
一开始以为是一道搜索树的模板题,但是一看数据量10^8不能直接暴力搞了,之后就写了一篇巨长的代码,想了一下把top出的节点建树可以解决, 一开始想复杂了,导致我写了splay,SBT,hash,敲完代码手指头都有点抽了(o(╯□╰)o),后来看别人的题解发现都是离散化+离线解决的,而且只用splay就可以了,但是已经敲了这么长的代码,不忍心放弃,只好硬着头皮在线搞,还好都解决了,最后在求rank的原创 2012-09-26 22:21:38 · 531 阅读 · 0 评论 -
Yaroslav and Points CF 295E
看Tutorial理解了信息维护的办法,CF很人性化啊,以后转战CF。这题线段树和splay都可以搞。线段树:需要离散化,一开始Move the pj-th理解成了当前序列第pj小的元素,心说这咋离散化啊,尼玛还要再建个平衡树维护离散化过程,也太恶心吧,又看了下要求是初始的第pj个元素,这就好办了,不过线段树搞这种题赶脚好麻烦,以后遇到需要移动元素的还是果断splay吧原创 2013-07-06 10:30:08 · 794 阅读 · 0 评论 -
Little Elephant and Inversions CF220E
函数式线段树的应用#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2013-10-02 20:18:59 · 805 阅读 · 0 评论 -
middle BZOJ2653
我们平时建立函数式线段树的顺序都是按照索引建立,值作为线段树的区间,此题我们要按值的顺序建立,将索引作为线段树的区间,又涨姿势了...具体可以参考爱神的题解: http://blog.youkuaiyun.com/acm_cxlove/article/details/8566093#include #include #include #include #include #incl原创 2013-10-03 12:20:39 · 1097 阅读 · 0 评论 -
Sereja and Ballons CC SEABAL
在爱神博客找到的题, 思路很巧妙, 用链表把所有的盒子顺序连起来,然后在每次burst后维护维护链表如果盒子内的气球数不为0,则答案显然不会增加,直接输出上次答案,继续如果在burst后盒子i内的气球为0, 则增加的答案数为左端点在(L[i], i], 右端点在[i, R[i])的pair数目,然后删除这个节点(令L[R[i]] = L[i], R[L[i]] = L[i]) ,由于节点原创 2013-10-05 17:12:47 · 737 阅读 · 0 评论 -
An Easy Problem for Elfness
树上的函数式线段树, 查询那步自己写的是logn*logn的办法,可能数据比较弱的原因跑的还挺快的,可以在线段树上逼近降到logn#include #include #include #include #include #include #include #include #include #include #include #include原创 2013-10-06 09:50:05 · 677 阅读 · 0 评论 -
COT (spoj)
经典的函数式线段树题目,存下代码备忘。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2013-09-24 11:50:27 · 855 阅读 · 0 评论 -
AC's String HDU3973
http://acm.hdu.edu.cn/showproblem.php?pid=3973线段树维护HASH#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-11-20 10:11:50 · 924 阅读 · 0 评论 -
SPLAY树
开始以为splay就是普通的BST,后来看了hh神和撞神的文章才知道splay可以当做线段树用,而且还可以完成区间插入和区间删除等这些线段树完成不了的工作,及其的灵活.Daniel Sleator & Robert Tarjan & ACMer & OIer ORZpoj 3667#include #include #include #include #include #原创 2012-09-16 10:33:05 · 1213 阅读 · 0 评论 -
Tree HDU4757
http://acm.hdu.edu.cn/showproblem.php?pid=4757函数式trie,和cot差不多,用父节点递推建立子节点,此题学到了一个函数式的小技巧,就是一开始(即root[0])并不需要把所有的节点都建出来,只要让root[0]所有的后继都指向自己就可以了。#include #include #include #include #include原创 2013-10-03 18:00:01 · 929 阅读 · 0 评论 -
数列维护 NOI2005
http://www.lydsy.com/JudgeOnline/problem.php?id=1500很磨人的题,如果对splay的push_up和push_down理解不透彻的话debug过程会很痛苦的,一定要注意及时把信息更新的根节点。/*301000-505467-773-521808-690939-962-490-688-878254-原创 2013-07-03 15:58:55 · 700 阅读 · 0 评论 -
Repair the brckets FZU1987
暂存,fzu服务器出问题了,还未提交#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2013-07-04 09:01:22 · 670 阅读 · 0 评论 -
SuperMemo POJ3580
数据比较恶心的一道题,主要是REVOLVE的数据可以超过长度,而且还可能是负数,爱神的思路比较巧妙,利用模代数系统各种数据都等价到[0, len-1],这样就可以很方便的处理了。#include #include #include #include #include #include #include #include #include #include #incl原创 2013-07-03 17:25:23 · 726 阅读 · 0 评论 -
AHOI 2006 文本编辑器
一道splay的模板题,收录#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-09-27 21:04:01 · 489 阅读 · 0 评论 -
hdoj 3487 Play with Chain
splay模板题目一道,收录于此#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-10-01 20:47:11 · 494 阅读 · 0 评论 -
hdoj 2871 Memory Control
hdoj 2871 poj 3667 hotel套了个马甲 线段树基本操作不用变,按分配内存先后分别标记每个内存块的编号,增加一个查找某点所属内存块的编号的函数记录每个内存块的起始位置和结束位置,然后维护一颗BST,以起始编号为主键,求第k大即可线段树+SBT#include #include #include #include #include #include原创 2012-09-17 22:33:45 · 483 阅读 · 0 评论 -
hdoj 1890 Robotic Sort
这道题的splay没有权值,其偏序关系在建完树之后就确定了,所以翻转操作直接交换俩个孩子的指针即可,因为没有权值,也就不用去修改,这样很简单的就改变了该子树的偏序关系,而且可以使用懒惰标记,每次只要把该值所对应的节点旋转到树根然后显示root->size+i(i为该节点排完序后位置,因为每次都会删除排好序的的节点,所以是+i),因为树没有权值,就算我们把每个节点都增加一个域来记录其所对应的数,由于原创 2012-09-25 19:49:47 · 566 阅读 · 0 评论 -
Fast Matrix Operation UVA11992
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2013-05-14 22:14:13 · 618 阅读 · 0 评论 -
Queue Sequence HDOJ4441
你脑残的一B啊, 你tmd的被64位整数坑多少回了,还tm不长教训,我真tm傻X#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-07-07 16:36:02 · 708 阅读 · 1 评论 -
Book Pile sgu271
处理好输入格式就可以了#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2013-07-07 21:37:31 · 707 阅读 · 0 评论 -
Book 书架 Zjoi2006
模板题一枚 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2013-07-07 21:39:25 · 984 阅读 · 0 评论 -
带修改的区间第k大
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112提高代码能力。。。方法一:线段树套平衡树,时间:O(m*lgn*lgn*lgn),空间:O(n*lgn)。#include #include #include #include #include using namespace std;c原创 2015-04-18 18:07:14 · 2678 阅读 · 0 评论