随笔分类 - 字符串处理——KMP
摘要:【传送门:BZOJ3942】 简要题意: 给出一个母串和一个模式串,当前一个一个地将母串插入到一个字符串中,如果在插入的过程中,当前字符串以模式串为后缀,则将这个模式串从字符串中删除,然后继续插入 求出最后得到的字符串 题解: KMP,先求模式串的p数组 然后直接一个一个地插入母串,实时更新q数组就
阅读全文
摘要:【传送门:BZOJ1009】 简要题意: 给出n,m,k,给出长度为m的不吉利串,求出长度为n的数字序列中不存在一个子串为不吉利串的序列数,答案%k 题解: 神矩乘+KMP f[i][j]表示当前枚举到第i位,和不吉利数字匹配到第j位 a[i][j]表示匹配到第i位,转移到第j位方案数(可以用KMP
阅读全文
摘要:【传送门:BZOJ3620】 简要题意: 给出一个字符串和一个正整数k,判断有多少个子串为A+B+A的形式,如:aabaa(aa+b+aa),cbaccba(cba+c+cba) 注意不同位置但A,B相同算不同的子串,相同位置但A,B不同算相同子串 要求在len(A)>=k,len(B)>=1的情况
阅读全文
摘要:【传送门:BZOJ3670】 简要题意: 给出一个st字符串,定义一个sum数组,sum[i]表示st[1...i]中,所有前缀和后缀不重叠的情况下,前缀和后缀相等的数量,比如说st='aaaaa',sum[5]=2,因为st[1]=st[len],st[1...2]=st[len-1...len]
阅读全文
摘要:【例题传送门:caioj1177】 KMP模版:子串是否出现 【题意】有两个字符串SA和SB,SA是母串,SB是子串,问子串SB是否在母串SA中出现过。如果出现过输出第一次出现的起始位置和结束位置,否则输出"NO"【输入文件】第一行SA(1<= 长度<=1000000)第二行SB(1<= 长度<=1
阅读全文