![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
KMP,SA
H_M_D
重新开始,曙光无限
展开
-
[kuangbin带你飞] - Count the string (KMP)
题目链接: K - Count the string HDU - 3336题意 给你一个字符串,枚举其所有的前缀,输出其所有前缀出现的次数思路题目要求的是给定一个字符串s,求字符串s的所有的前缀在s的匹配的次数之和mod10007.很明显n<= 200000,分析一下那么就要n个前缀如果每一个前最都去匹配s的话复杂度就是o(n^2),那么肯定是TLE的,...原创 2018-04-24 17:05:40 · 185 阅读 · 0 评论 -
笔记 - BM 算法
如果,你的人生,在未来的某一段路上会遇到多个非常大的教训,那么我们应该趋向于寻找最后的这两个坎,能够让我们前进的大小,明显是不同的,先考虑后面的点能让我们省下更多的弯路。以终为始 对优先从最后的一个字符开始比对,如果不相等,就跳到自己串中前一个出现的位置。 - 建立BC串//简易代码int* buildBC (char * P) { int * bc = new int ...原创 2018-06-07 16:40:40 · 117 阅读 · 0 评论 -
BM算法详解
原帖链接: BM算法详解来源在没有BM算法时,其原始算法是从后往前进行匹配,需要两层循环,判断以某个字符为结尾的子串是否和模式串相等,这种算法也称作暴搜;贴上代码:void BLS(string s, string p) { int s_len = s.size(), p_len = p.size(); int j = 0, i = 0; while ...转载 2018-06-07 16:39:49 · 2819 阅读 · 0 评论 -
TSOJ - 回文串 (Manachar变种)
回文串 (Manachar变种)题目链接: 回文串题意输入一个字符串。输出子串是回文串的个数。思路普通的Manacher算法求的是最长回文串其中的关键步骤就是res = max(res,p[i]-1)现在要求的是总共的回文子串,那么我们就只需将以每个字符为中心的回文串长度/2即可。代码#include <bits/stdc++.h>...原创 2018-06-05 19:28:24 · 262 阅读 · 0 评论 -
[kuangbin带你飞] Girls' research (最长回文子串)
Girls’ research题目链接:专题十六 W - Girls’ research HDU - 3294 题意给你一个字母和一个由小写字母构成的字符串,其中第一个字母代表着真实a的位置,例如给出’b’那么现在给出的字符串中的’b’都换成’a’,所有’c’都换成’b’……’a’换成’z’。第二个任务,就是要输出这其中的最长回文串的起始位置,和末尾,还要输出最长回文串。思...原创 2018-04-26 15:17:54 · 129 阅读 · 0 评论 -
Manacher算法(转载)
Manacher算法(转载)Manacher算法(转载)一:背景二:算法过程分析三:代码四:算法复杂度分析转载自大神: 原帖链接一:背景给定一个字符串,求出其最长回文子串。例如:s=”abcd”,最长回文长度为 1;s=”ababa”,最长回文长度为 5;s=”abccb”,最长回文长度为 4,即bccb。以上问题的传统思路大概是,遍历每一...转载 2018-04-25 20:24:00 · 268 阅读 · 0 评论 -
[kuangbin带你飞] Period (KMP)
题目链接 :HDU - 1358 - Period题意 给你一个字符串,让你从第二位开始扫,如果字符串从第一位到第 i 位的子串可以有一个字符串a循环两次以上得到,就输出当前 i 的大小,和子串的长度。思路 这题跟之前做的求字符串由多少子串构成的有些类似,不同的是,这题需要我们从第二位开始每位都要判断。代码#include <bit...原创 2018-04-21 12:50:12 · 103 阅读 · 0 评论 -
[kuangbin带你飞] Seek the Name, Seek the Fame (前后缀)
题目链接 : POJ - 2752 - Seek the Name, Seek the Fame题意 给你一个字符串,求前后缀的数量,输出要从小到大。思路 这题,就是需要对Next数组的深度理解,Next数组存的就是最大前后缀,所以我们需要的就是如何合理的利用Next数组,刚开始,我没有理解透彻这个原理,其实每次在进行sub[j]与ptr[i]进行比对时,进...原创 2018-04-21 09:47:01 · 73 阅读 · 0 评论 -
[kuangbin带你飞] - F. Power Strings POJ - 2406 (Next简单理解)
题目链接 专题十六 KMP - F - Power Strings POJ - 2406题意 给你一个字符串,让你找到一个子序列a,使字符串由a多次循环拼接得到。求循环的最多次数,及求a的最小长度。思路一我刚开始没有什么思路,后来想通过分解质因子来入手,毕竟这个字符串如果是由a多次拼接得到的,那么它一定是a.length的倍数。Next的数组还是一定要求的,里面存了一个最...原创 2018-04-20 20:32:44 · 138 阅读 · 0 评论 -
[kuangbin带你飞] - Manacher 小题合集
Manacher 小题合集Manacher 小题合集X - 最长回文题意思路V - 吉哥系列故事――完美队形II题意思路W - Girls’ research题意思路X - 最长回文题目链接: X - 最长回文 HDU - 3068 题意给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文...原创 2018-05-02 14:51:50 · 168 阅读 · 0 评论 -
[kuangbin带你飞] - KMP小题合集 (加深理解)
KMP小题合集 (加深理解)KMP小题合集 (加深理解)J - Simpsons’ Hidden Talents题意思路K - Count the string题意思路L - Clairewd’s message题意思路J - Simpsons’ Hidden Talents题目链接: J - Simpsons’ H...原创 2018-04-24 19:19:47 · 185 阅读 · 0 评论 -
VOJ 字符加密Cipher (后缀数组)
字符加密Cipher题目链接:字符加密Cipher HYSBZ - 1031题意给你一个长度为N的字符串,让你输出一个字符串,要求,这个字符串是原字符串循环(即每次将第一个字符移至最后一个位置),总共会用N个这样的字符串,然后将这些字符串按照字典序排列,按照顺序每次输出这些串的最后一个字符,这样就形成了一个加密过的字符串。数据范围: N&lt;105N &lt; 10^5N...原创 2018-09-18 11:54:36 · 137 阅读 · 0 评论