之前写了一题本应用Splay维护单点修改,查询最小的不小于它的那个数排在哪个位置。我偷了下懒,用STL做。。。结果TLE了。。。我们使用这段短短的代码进行测试:#include #include using namespace std;set g;int n;int main() { fre...
分类:
其他好文 时间:
2014-08-19 09:19:33
阅读次数:
191
说好的专题。。。lct的一些概念看论文 杨哲《QTREE解法的一些研究》 简单易懂。首先不要把lct想象得很难,其实很水的。lct就是很多splay树维护的树。。。lct的access操作就是在原树中拓展一条点到根的类二叉树出来(用splay来维护)这里,splay树是按深度作为关键字的,当然,在无...
分类:
其他好文 时间:
2014-08-18 12:23:24
阅读次数:
263
题目链接:点击打开链接
题意:
给定n个人来排队
每个人有2个参数,身份优先级和脸皮厚度 ==
来的那个人会排到队尾
如果这个人的优先级比他前面那个人的优先级大就会和前面那个人交换位置。
交换一次脸皮厚度减1, 一直交换到队头或者脸皮厚度为0
交换完成后下一个人才会到来。
问:
队伍最后的情况(从队头到队尾依次输出每个人的编号)
思路:splay
维护子树的最小值。
...
分类:
其他好文 时间:
2014-08-18 01:36:03
阅读次数:
266
1 #include 2 #include 3 const int mod =1000000007; 4 const int inf = ~0u>>2; 5 const int maxn = 200010; 6 int lim; 7 struct Splay...
分类:
其他好文 时间:
2014-08-17 16:56:42
阅读次数:
363
伸展树和AVL树不一样,伸展树并不保证每次操作的时间复杂度为O(logn),而保证任何一个m个操作的序列总时间为O(mlogn)。伸展树的基本思想是:每个结点被访问时,使用AVL树的旋转操作把它移动到根。由于旋转是自底向上的,所以需要设置父亲指针,而不像AVL树那样以儿子为轴旋转。伸展操作(spla...
分类:
其他好文 时间:
2014-08-14 23:30:16
阅读次数:
280
(BZOJ挂了,还没在BZOJ测,先是在wikioi测过了,,)囧。在军训时立志要学lct!!!这是一道lct的裸题,只有access操作(10行都没有啊亲。。。缩行大法的话,我就不说了。。)(link操作相当于水过),其实lct很简单。。想想都有点小激动。。。。。。lct用splay维护的话,一下...
分类:
其他好文 时间:
2014-08-14 15:51:48
阅读次数:
193
擦 这题 绝逼 坑人 + 一波N折。。。。 touch me我一开始 用了最简单 最sb的 一维hash数组 来做 我看时间2000ms最大数才10W 还以为能过的 ...果断tle了然后 就觉得应该用更高效的数据结构来做了我去问下了下porker 他一开始和我提了下 splay 不会啊=-=...
分类:
其他好文 时间:
2014-08-09 21:19:49
阅读次数:
301
treap: (Orz fhq 大神,我曾经以为我会了 treap ,就再也不会写 splay 了,然后我遇上了 lct ) 1 #include 2 const int sizeOfMemory=10000; 3 template inline void swap(type & x, type.....
分类:
其他好文 时间:
2014-08-09 21:10:49
阅读次数:
302
之前写线段树套splay数组版。。写了6.2k。。然后弃疗了。现在发现还是很水的。。嘎嘎。。zju过不了,超时。 upd:才发现zju是多组数据。。TLE一版才发现。然后改了,MLE。。。手写内存池。。尼玛终于过了。。附zju2112代码于后。bzoj倒是过了,1A的感觉还是很爽的。。可是时间不好....
分类:
其他好文 时间:
2014-08-06 22:09:52
阅读次数:
427
过了之后感觉以前真的做过这种类型的题。
之前一直很疑惑二级排序的优先级问题,现在发现二级排序真的没有绝对的优先级。
对于此题,若按W排序,则有1到i件物品的W均小于等于第i+1件物品(设为A)的W,那么对于第i+1件我们在[1,i]中要选取一个B,使得B.w
这就是所谓的最接近A的B。
因为对于W,后面的均大于等于前面的,所以我们需要一个尽可能大的H。
Splay_Tree实现。
#...
分类:
其他好文 时间:
2014-08-04 21:43:38
阅读次数:
309