2946: [Poi2000]公共串
Time Limit: 3 Sec Memory Limit: 128 MB
Submit: 286 Solved: 121
[Submit][Status][Discuss]
Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度。
任务:
l 读入单词
l 计算最长公共子串的长度
l...
分类:
其他好文 时间:
2015-07-26 19:23:24
阅读次数:
163
当然先虐SAM裸题QwQ
3160 最长公共子串时间限制: 2 s
空间限制: 128000 KB
题目等级 : 大师 Master题目描述 Description给出两个由小写字母组成的字符串,求它们的最长公共子串的长度。
输入描述 Input Description读入两个字符串
输出描述 Output Description输出最长公共子串的长度
样例输入 Sample Inpu...
分类:
其他好文 时间:
2015-07-26 15:49:03
阅读次数:
119
ACM中常用算法—-字符串ACM中常用的字符串算法不多,主要有以下几种:
Hash
字典树
KMP
AC自动机
manacher
后缀数组
EX_KMP
SAM(后缀自动机)
回文串自动机
下面来分别介绍一下:0. Hash字符串的hash是最简单也最常用的算法,通过某种hash函数将不同的字符串分别对应到不同的数字.进而配合其他数据结构或STL可以做到判重,统计,查询等操作.
#### 字符串的h...
分类:
编程语言 时间:
2015-07-26 12:42:25
阅读次数:
297
学会了构建SAM之后,我们要开始学如何使用SAM来处理各种问题了.
我们先来整体看一下SAM的性质(引自2015国家集训队论文集张天扬《后缀自动机及其应用》):
1.每个状态s代表的串的长度是区间(lenfas,lens](len_{fa_s},len_s].
2.对于每个状态s,它代表的所有串在原串中出现次数和每次出现的右端点相同.
3.在后缀自动机的Parent树中,每个状态的...
分类:
其他好文 时间:
2015-07-24 18:27:11
阅读次数:
171
太弱了QAQ学完SAM这么久才学会构建QAQ#include
#include
#include
#include
#include
#define MAXN 200010
using namespace std;
struct sam
{
int p,q,np,nq;
int cnt,last...
分类:
其他好文 时间:
2015-07-24 16:10:52
阅读次数:
94
今天重新看了一下后缀自动机的,感受颇深。网上对后缀自动机的介绍以及很详细了,所以只记录一下自己的心得和体会。先贴个模板:#include#include#include#include#include#include#include#include#include#include#include#i...
分类:
其他好文 时间:
2015-07-15 22:19:36
阅读次数:
119
题目大意:对于一个给定字符串,找到其所有不同的子串中排第k小的子串先构建后缀自动机,然后我们可以将整个后缀自动机看做是一个DAG图,那么我们先进行拓扑排序得到 *b[N]对于每个节点记录一个sc值,表示当前节点往下走可以得到不同的字符串的个数然后从后往前,每次到达一个节点,当前节点sc赋1,然后每个...
分类:
其他好文 时间:
2015-06-24 20:41:48
阅读次数:
173
题目大意:给定一个字符串,接下来再给n个字符串,求原字符串中含有多少个当前给定字符串的循环同构体的字符串的个数以初始字符串构建后缀自动机,在自动机上前进的时候,比如当前需要匹配的字符串为aba,到达某个状态点S我们所希望知道的所有aba出现的次数,因为aba最终到达的是点S,其实可以理解为整个后缀自...
分类:
其他好文 时间:
2015-06-24 20:41:09
阅读次数:
109
题目大意:给定一个基础字符串,再给多个字符串,求出基础字符串中能得到的不一样的子串的个数未出现在后面多个字符串当中这里以基础子串构建后缀自动机是没问题的后面的多个子串不断在后缀自动机上进行匹配,每次到达一个状态点,就要更新当前点所能达到的其他字符串抵达最大长度mx,那么未能匹配的长度就是cur->l...
分类:
其他好文 时间:
2015-06-24 07:02:24
阅读次数:
191
题目大意:给定一个长度l - p->f->l ),也就是以当前点为最后节点所能得到的与之前不重复的子串的个数那么这个问题就很好解决了,共2000个位置,以每一个位置为起点构建一次后缀自动机,一直构建到最后一个字符,过程中不断记录所能得到的子串个数把这个个数动态保存到f[][]数组中那么打好了表,最后...
分类:
其他好文 时间:
2015-06-24 02:02:49
阅读次数:
260