摘要: 母串:S[i] 模式串:T[i] 标记数组:Next[i](Next[i]表示T[0~i]最长前缀/后缀数) 先来讲一下最长前缀/后缀的概念 例如有字符串T[6]=abcabd接下来讨论的全部是真前缀/真后缀,也就是除去串自己本身之外的前缀/后缀 T[0]=a,此时前后缀都是a那么Next[0]=1 阅读全文
posted @ 2016-07-28 15:41 pter 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 链接:http://codevs.cn/problem/1080/ 先用树状数组水一发,再用线段树水一发 树状数组代码:84ms 线段树代码:48ms 阅读全文
posted @ 2016-07-26 11:10 pter 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 思路:要求求出不同等级的星星的个数,开始怎么也想不到用树状数组,看完某些大神的博客之后才用树状数组写的,搞了好久才懂得数组的更新过程 附上样例中数组的更新过程,上面一行是c[i],下面是level 阅读全文
posted @ 2016-07-26 10:39 pter 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 阅读全文
posted @ 2016-07-25 21:20 pter 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 转自: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) 阅读全文
posted @ 2016-07-25 14:30 pter 阅读(1847) 评论(0) 推荐(0) 编辑
摘要: 树状数组又名二分索引术,主要包含两种基本操作 1.Update(int i,int val)更新节点及其所有父节点及祖先节点的值,表示对第i点的值增加val。时间复杂度O(logn) 2.Sum(int i)表示对前i个点进行求和操作.时间复杂度O(logn),n表示节点总数,logn即log2n。 阅读全文
posted @ 2016-07-23 11:10 pter 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 使用o(n)的manacher算法,详见代码 阅读全文
posted @ 2016-07-22 13:24 pter 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 思路:正常KMP求解aaaaaa aa得到的结果是6,这题是3。仅仅改一点代码就行 当匹配完之后将j=m_next[j]改为j=0即可,见代码 阅读全文
posted @ 2016-07-21 15:07 pter 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3461 统计字符串出现的次数 阅读全文
posted @ 2016-07-21 14:43 pter 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 数字KMP,原来还能这么用 阅读全文
posted @ 2016-07-21 13:29 pter 阅读(103) 评论(0) 推荐(0) 编辑