- 博客(2)
- 收藏
- 关注
原创 ssoj 2511 后缀数组
离线作法,先将整个字符串读入生成一棵tire。 1.在tire上一个后缀的定义就是一个节点到根的路径。 2.那么接下来考虑如何维护这些后缀的sa,和rank。 3.会发现一个后缀在树上是一段连续的“树枝”,不会拐弯,这个性质非常的有用。由此,我们倍增计算sa和rank时只需像倍增求lca一样往上跳2的j次方个节点就行了。 4.接下来是lcp的问题,在这里我们可以不需要求出height数组,只
2016-01-04 16:48:41 179 1
原创 splay模板
splay模板void rotate(int x,int &k) { int y=fa[x],z=fa[y],l,r; if(c[y][0]==x) l=0;else l=1; r=l^1; if(y==k) k=x; else { if(c[z][0]==y) c[z][0]=x; else c[z][1]=x; }
2015-08-26 16:24:27 163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人