学弟lyh上午讲课,喜闻乐见的制胡窜 一上午讲惹KMP, manachar, trie树, AC自动机 orz 例题都是洛咕咕上的, 贴一下(督促自己不要咕 AC自动机不会qaq(并且没有学的意向 manachar 没写过 P4555 [国家集训队]最长双回文串 kmp 不熟 P3435 [POI2 ...
分类:
其他好文 时间:
2018-10-20 11:43:18
阅读次数:
141
来自http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 并进行自己的简单整理,还加了代码实现。 因为作者实在太弱,以至自己找了一堆解释才弄明白,所以按照比较好懂的方式讲一讲 ...
分类:
编程语言 时间:
2018-10-18 18:17:56
阅读次数:
157
转自:https://www.cnblogs.com/adinosaur/p/6002978.html 问题描述 字符串匹配问题可以归纳为如下的问题:在长度为n的文本T[1...n]中,查找一个长度为m的模式P[1...m]。并且假设T,P中的元素都来自一个有限字母集合?。如果存在位移s,其中0≤s ...
分类:
编程语言 时间:
2018-10-18 17:00:54
阅读次数:
156
题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 复制 abcd aaaa ababab . 输出样例#1: 复制 1 4 3 题目描述 PDF 输入输出格式 输入输出样例 输入样例#1: 复制 abcd aaaa ababab . 输出样例#1: 复制 1 4 ...
分类:
其他好文 时间:
2018-10-17 22:21:42
阅读次数:
252
#include<iostream>#include<cstring>using namespace std;string T,P;int nxt[1000002];void mkNxt(){ nxt[0]=0; int k,q; for(k=0,q=1;q<P.length();q++){ whi ...
分类:
其他好文 时间:
2018-10-13 21:43:48
阅读次数:
134
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 思路: 一开始直接用KMP莽了发,超时了,后面发现如果前面的字符串被后面的字符串包含,那么我们就不需要用前面的字符串去比较了,把他标记掉就好了。 实现代码: ...
分类:
其他好文 时间:
2018-10-13 19:50:22
阅读次数:
184
ac自动机说起来很复杂,其实和kmp是一样的思路,都是寻找相同前后缀,减少跳的次数。只要理解了kmp是怎么求next数组的,ac自动机bfs甚至比knp还好写。 这里大致说一下kmp求next数组的方法吧,假设现在要求第c个字符的next值(假设这个c很大,这样画图出来比较清晰方便理解),因为遍历过 ...
分类:
其他好文 时间:
2018-10-13 16:55:27
阅读次数:
158
传送门: "Period" 题意 给出一个字符串,从第二个位置开始找到它前缀的最大重复次数及及此时的位置 分析 利用KMP的next数组求解。根据next数组的定义(当前位置的前缀后缀最大匹配长度) 发现在位置i处如果出现了重复,必有i next[i]为前缀最大的重复长度,此时满足(i%(i nex ...
分类:
其他好文 时间:
2018-10-13 00:02:40
阅读次数:
163
参考: "扩展KMP算法" 问题定义:给定两个字符串S和T(长度分别为n和m),下标从0开始,定义extend[i]等于S[i]...S[n 1]与T的最长相同前缀的长度,求出所有的extend[i]。 如下表所示: |i |0 |1 |2 |3 |4 |5 |6 |7| |: :|: :|: :| ...
分类:
编程语言 时间:
2018-10-12 23:53:53
阅读次数:
198
"LINK" 简要题意 给你一个串s,上面有字母和一些通配符,问你将通配符换成字母之后最多可以出现多少次串t 首先有一个很傻子的做法就是$dp_{i,j}$表示s到第i个位置匹配t串前j个字符的完整t串个数 然后每次枚举前缀看看能不能转移。。。太不优秀了 那么就考虑这样做: $dp_{i}$表示最后 ...
分类:
其他好文 时间:
2018-10-11 01:36:57
阅读次数:
177