码迷,mamicode.com
首页 >  
搜索关键字:splay    ( 7870个结果
poj 3468 Splay 树
大二上的时候,写过一个AVL的操作演示,今天一看Splay,发现和AVL其实一样,加上线段树的基础,懒惰标记什么都知道,学起来轻松许多哦 我参考的模板来自这里  http://blog.csdn.net/u013480600/article/list/2 里面有大量的ch[r][0] ch[r][1]等 我建议用宏定义取代,写的时候方括号少打了很多,等做的题多得时候,我再把自己使用的模板发来 ...
分类:其他好文   时间:2014-07-30 17:43:44    阅读次数:263
poj3468 线段树 or splay
poj3468 裸线段树。因为在熟悉splay 所以就用splay交了一发。。。开始用的scanf()!==2 居然TLE了。。。然后我就当单组测试数据做的 然后就过了 囧TZ #include #include #include #include #include #include using n...
分类:其他好文   时间:2014-07-30 12:12:03    阅读次数:278
SPOJ GSS6 4487. Can you answer these queries VI (SPLAY)
题目大意: 四个操作: I X Y 在x位置插入y D x 删除x位置的数 R x y 用y替换x位置上的数字 Q x y 求出[x,y]上的最大子序列的和。 思路分析: 对于动态维护序列肯定是splay了。 现在就考虑以下几个问题。 之前我们知道线段树处理连续的子序列的和是用区间合并的。那splay上怎么做。 考虑边界,如儿子为 0 或者是冗余节点怎么办? 初始化的...
分类:其他好文   时间:2014-07-27 11:09:32    阅读次数:257
POJ 1442 Black Box
题意: 给你个序列和一串询问  询问前a[i]个数字第i小的是几 思路: 动态的第k值问题  由于区间只增不减所以是水题 利用平衡树解决这类问题 treap是方便编写的类似平衡树的产品 treap方便实现BST的功能  splay更适合于去维护区间 代码: #include #include #include #include #include using name...
分类:其他好文   时间:2014-07-23 22:35:48    阅读次数:234
hdu 1754 splay tree伸展树 初战(单点更新,区间属性查询)
题意:与区间查询点更新,点有20W个,询问区间的最大值。曾经用线段树,1000+ms,今天的伸展树,890没ms,差不多。 第一次学习伸展树,一共花了2个单位时间,感觉伸展树真很有用,也很好玩。现在只学了一点点。切个点更新试试。 大致思路:用编号(数组)作为树的键值建树,每插一个数,沿路节点更新最大值(每个结点有一个附加信息标记以之为子树的树所有点的最大值)。所以,查询时【i,j】,只要把i-...
分类:其他好文   时间:2014-07-22 22:34:13    阅读次数:294
HDU 4286 Data Handler
题意: n个数字一开始排成一串  有两个指针L和R  指向了这串数字的一个区间的端点  现在有7种操作 1、使一个指针左移 2、使一个指针右移 3、在L后插入一个数字X 4、在R前插入一个数字X 5、删除L所指元素 6、删除R所指元素 7、翻转[L,R]区间 问  m次操作后  整串数字是什么样的 思路: splay经典维护区间的操作  区间更新(翻转操作)  删除节...
分类:其他好文   时间:2014-07-20 22:12:53    阅读次数:337
HDU 3436 Queue-jumpers
题意: n个人站成一排 一开始是从1到n有序的 现在有三个操作 Top操作是将一个人排到队首 Query操作是询问某个人现在排第几 Rank操作是询问排某个位置的人是谁 思路: 将队伍扭来扭去… 很像splay的旋转吧(哪像了!!) 这是个不错的splay题… 首先 n很大 但是操作不多 想到离散化 离散化还有个技巧 我们发现只有top和query操作对单人进行 rank和人没什么关系 所以要把top和query操作的人单独拿出来 那么其他的人就可以用区间的形式来表示了 我们只需要开...
分类:其他好文   时间:2014-07-19 23:24:09    阅读次数:344
HDU 1890 Robotic Sort
题意: 将一列数字排序 排序规则是 每次找到最小值的位置loc 将1~loc所有数字颠倒 然后删掉第一位 直到排好序 排序要求是稳定的 思路: 这题要做的是 寻找区间最小值位置 翻转区间 的操作 因此可以想到用splay 只需要每个节点记录一个small 就可以实现找到最小值位置 翻转区间操作就是将splay的超级头转到最上面使之成为根 再把loc转到根下面 这时根的右儿子的左儿子就是需要翻转的区间 用一个rev延迟更新 然后将loc转到最上面是指成为根 删掉根 如此循环...
分类:其他好文   时间:2014-07-17 10:53:28    阅读次数:217
HDU4010 Query on The Trees(LCT)
人生的第一道动态树,为了弄懂它的大致原理,需要具备一些前置技能,如Splay树,树链剖分的一些概念。在这里写下一些看各种论文时候的心得,下面的代码是拷贝的CLJ的模板,别人写的模板比较可靠也方便自己学习理解,然后一些概念的则是学习了一些论文,下面的内容可以看作对别人模板的理解心得,以及对论文的收获体...
分类:其他好文   时间:2014-07-16 20:46:38    阅读次数:189
Splay Tree的删除操作
Splay Tree的插入操作,搜索操作,和删除操作都实现了,那么就能够使用来解题了。指针的删除操作的处理还是那么难的,非常多坎须要避开.同一个坎还是坑了我好多次,就是指针传递的问题,什么时候须要改动指针本身的值,就必须返回指针或者传递指针的指针,或者传递指针的的实參。这里的删除操作就是须要改变传递...
分类:其他好文   时间:2014-07-15 00:09:13    阅读次数:233
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!