2014年5月16日

摘要: B Alice and Bob •输入输出文件: alice.in/alice.out•源文件名: alice.cpp/alice.c/alice.pas • 时间限制: 1s 内存限制: 128M 题目描述 Alice 和 Bob 发明了一个新的游戏。给定一个序列{x0,x1,··· ,xn−1}... 阅读全文

posted @ 2014-05-16 10:54 SymenYang 阅读(801) 评论(0) 推荐(0) 编辑

2014年5月11日

摘要: 试了一下先上再下的Treap方式,很高兴,代码变短了,但是,跑的变慢了!!!其实慢得不多,5%左右。而且这个版本的写法不容易写错。。只要会一般可持久化Treap的人写着都不难。。。就是相对于(压行的)Splay还是长了点。。。 代码: 1 #include 2 #include 3 ... 阅读全文

posted @ 2014-05-11 20:26 SymenYang 阅读(512) 评论(1) 推荐(0) 编辑

摘要: 一直没有点动态树这个科技树,因为听说只能用Splay,用Treap的话多一个log。有一天脑洞大开,想到也许Treap也能从底向上Split。仔细思考了一下,发现翻转标记不好写,再仔细思考了一下,发现还是可以写的,只需要实时交换答案二元组里的两棵树,最后在吧提出来的访问节点放回去就行了。本着只学... 阅读全文

posted @ 2014-05-11 15:30 SymenYang 阅读(2053) 评论(0) 推荐(2) 编辑

2014年5月7日

摘要: 1 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 struct node 10 { 11 int data; 12 int le... 阅读全文

posted @ 2014-05-07 19:06 SymenYang 阅读(294) 评论(1) 推荐(1) 编辑

2014年4月26日

摘要: 卡着进了省队,还要努力啊,不然NOI跪了怎么办?EP,Mushroom,huhu,二娃也都是很强的,以后一定没有问题的。。 阅读全文

posted @ 2014-04-26 21:19 SymenYang 阅读(159) 评论(0) 推荐(0) 编辑

2014年4月24日

摘要: Bless All 阅读全文

posted @ 2014-04-24 17:21 SymenYang 阅读(166) 评论(0) 推荐(0) 编辑

2014年4月23日

摘要: 在线LCA一般大家都会用倍增吧,时间复杂度O(nlogn),空间复杂度O(nlogn),都是非常严格的复杂度限制,并且各种边界处理比较麻烦,有没有更快更好的办法呢?我们发现,在树链剖分时,我们不经意的找到了LCA,能不能用这种方法找LCA呢?答案是肯定的,使用轻重链剖分达到的LCA,时间复杂度最坏为... 阅读全文

posted @ 2014-04-23 19:22 SymenYang 阅读(341) 评论(0) 推荐(0) 编辑

2014年4月14日

摘要: 并查集是一种群众喜闻乐见的数据结构,其复杂度是数据结构中最奇葩的之一了,Tarjan证明其为阿克曼函数的反函数,在可以想象(不全面的解释啊)的范围内小于等于3。。。我们就把它当做O(1)吧。下面通过几道基础的并查集来探查一下并查集的应用。递归调用并查集。 最裸的并查集就只有表示一个集合的功能,... 阅读全文

posted @ 2014-04-14 21:13 SymenYang 阅读(1838) 评论(1) 推荐(2) 编辑

2014年4月12日

摘要: 今日开坑每日算法,慢慢填吧,争取省选前每日一更。 ---把学过的讲一遍,就相当于巩固一遍(伟大的SymenYang。。。。) 矩阵大家应该比较熟悉,至少熟悉其基本的运算规律。比如乘法,加法等(不懂的递归调用矩阵),对于矩阵乘法,Cij=∑(aik*bkj) k∈[1,n];因为矩阵乘法满足结合律,所以当求矩阵的幂时,可以使用快速幂加快速度,从而达到logN。。 矩阵可以用来优化递推,先来看一个简单的例子:斐波拉契数列! 递推式:f[i]为数列第i项 f[i] = f[i-1] + f[i-2]; (定义域。。。) 观察递推式,f[i] = 1*某个数 + 1*某个数,是否有点像矩... 阅读全文

posted @ 2014-04-12 22:17 SymenYang 阅读(2751) 评论(0) 推荐(2) 编辑

2014年3月2日

摘要: 原来听说过可持久化treap,觉得最多就和可持久化线段树一般可用程度。于是对于区间和序列问题就选择使用线段树和splay了,集合问题就选择各种平衡树和Splay。。。然后仔细的看了一下可持久化treap的操作和《范浩强谈数据结构》的ppt,发现这个神一般的既好写(zuo)又好看(wen)还好用(chi)的数据结构。 首先这个东西很好写,作为一个平衡树,它没有旋转!!!是的,一点都没有旋转,rightturn,leftturn什么的去死吧,我们不需要旋转。最基本的操作只有两种,一种叫merge,一种叫split,merge是把两个序列合并的操作,需要保证左边的所有元素小于(广义的小于,根据... 阅读全文

posted @ 2014-03-02 13:46 SymenYang 阅读(4892) 评论(2) 推荐(2) 编辑