后缀数组又被称为字符串处理神器;http://blog.csdn.net/xymscau/article/details/8798046 这里讲的非常好实现rank排名是用到了倍增法和一个比较神奇的计数排序,时间复杂度是nlongnheight[i]存放的是排名第i的后缀与排名第i-1的后缀的最长前...
分类:
编程语言 时间:
2015-09-04 18:32:51
阅读次数:
186
(1)动物细胞有由一对中心粒构成的中心体,中心粒在间期倍增,称为两组。进入分裂期后,两组中心粒分别移向细胞两级。在这两组中心粒周围,发出无数条放射状的星射线两组中心粒之间的星射线构成了纺锤体(2)动物细胞分裂的末期不形成细胞板,而是细胞膜从细胞中部向内凹陷,最后把细胞分裂成两部分,每部分都含有一个细...
分类:
其他好文 时间:
2015-09-03 11:32:51
阅读次数:
619
BZOJ 2085 [Poi2010]Hamsters Hash+倍增floyd...
分类:
其他好文 时间:
2015-08-31 21:46:22
阅读次数:
221
题意:
给出n个长度不大于100000的字符串;
现在要找出一个字符串包括m个这些字符串;
求这个字符串的最小长度;
数据保证字符串不互相包含;
n
题解:
数据保证了字符串没有包含的情况。。
那么为了节约考虑,还是要让字符串叠在一起比较合算;
设f[i][j]表示i后面加个j字符串要再加多少字符;
这个怎么求呢?
Hash之后暴力;
RKhash可以O(1)拿出前...
分类:
其他好文 时间:
2015-08-31 17:21:58
阅读次数:
199
又是一个赤裸裸的模板,倍增思想其实是关键,我们只有稍加改动,也可以得出另外一种运算,快速乘,但实用性不如快速幂,大概只有在大整数乘法时才会用到而倍增思想并不是仅仅用于快速运算,倍增求lca也是常用的倍增算法#include #include #include #include #include #i...
分类:
其他好文 时间:
2015-08-28 23:04:38
阅读次数:
264
题意:给一个树图,每个点的点权(比如颜色编号),m个询问,每个询问是一个区间[a,b],图中两点之间唯一路径上有多少个不同点权(即多少种颜色)。n 2 #define pii pair 3 #define INF 0x3f3f3f3f 4 #define LL long long 5 usi...
分类:
编程语言 时间:
2015-08-27 18:01:07
阅读次数:
2266
散列函数直接用key%size的形式,size为散列表的大小。
冲突处理采用平方探测法,为保证可以探测到整个散列表空间,散列表大小设置为4k+3形式的素数。
当散列表中的元素过多时会造成性能下降,这时应该倍增散列表的大小,重新计算原来散列表中每个元素在新的散列表中的位置。
散列表的实现
// HashTable.cpp : 定义控制台应用程序的入口点。
//
#inc...
分类:
其他好文 时间:
2015-08-26 20:15:23
阅读次数:
189
题意:n个点m条边,每条边有一个权值,有q个询问,每次询问两点间的一条路径,使得这条路径上权值最大的边最小。
思路:很容易想到最小瓶颈路,但是查询太多,会超时,可以预处理出最小生成树,则问题转化为一棵树上的两点间路径中权值最大的那条边,设这两点为u,v,可以得到dist(u,v)=max(dist(u,lca(u,v)),dist(v,lca(v,lca))),其中lca(u,v)表示u和v的最...
分类:
其他好文 时间:
2015-08-25 19:37:08
阅读次数:
161
题目描述 Description
形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。
任务:从文件中输入P(1000),计算2P-1的位数和最后500位数字(用十进制高精度数表示)
...
分类:
其他好文 时间:
2015-08-21 17:07:05
阅读次数:
145
设g[i][j]为i串至少加上几个字符后才能包含j,可以通过Hash求出。然后就是求经过m-1条边的最短路,用倍增加速Floyed即可,时间复杂度$O(n^3\log m)$。#include#include#define rep(i,n) for(int i=0;ib)a=b;}struct ma...
分类:
其他好文 时间:
2015-08-19 19:27:48
阅读次数:
168