摘要:
母串:S[i] 模式串:T[i] 标记数组:Next[i](Next[i]表示T[0~i]最长前缀/后缀数) 先来讲一下最长前缀/后缀的概念 例如有字符串T[6]=abcabd接下来讨论的全部是真前缀/真后缀,也就是除去串自己本身之外的前缀/后缀 T[0]=a,此时前后缀都是a那么Next[0]=1 阅读全文
摘要:
链接:http://codevs.cn/problem/1080/ 先用树状数组水一发,再用线段树水一发 树状数组代码:84ms 线段树代码:48ms 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 思路:要求求出不同等级的星星的个数,开始怎么也想不到用树状数组,看完某些大神的博客之后才用树状数组写的,搞了好久才懂得数组的更新过程 附上样例中数组的更新过程,上面一行是c[i],下面是level 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 阅读全文
摘要:
转自:http://www.dxmtb.com/blog/miller-rabbin/ 普通的素数测试我们有O(√ n)的试除算法。事实上,我们有O(slog³n)的算法。 定理一:假如p是质数,且(a,p)=1,那么a^(p-1)≡1(mod p)。即假如p是质数,且a,p互质,那么a的(p-1) 阅读全文
摘要:
树状数组又名二分索引术,主要包含两种基本操作 1.Update(int i,int val)更新节点及其所有父节点及祖先节点的值,表示对第i点的值增加val。时间复杂度O(logn) 2.Sum(int i)表示对前i个点进行求和操作.时间复杂度O(logn),n表示节点总数,logn即log2n。 阅读全文
摘要:
使用o(n)的manacher算法,详见代码 阅读全文