KMP
D_Bamboo_
我不懒,只是不知道填什么
展开
-
栗酱的数列 连续子序列和相等——kmp
传送门题意栗酱有一个长度为n的数列A,一个长度为m的数列B,现在询问A中有多少个长度为m的连续子序列A’,满足(a’1+b1)%k = (a’2+b2)%k = …… = (a’m + bm)%k。思路按照题目给的条件式只能暴力做,暴力做又超时。那么对满足式进行修改,(a[i]+b[i])%k=(a[i+1]+b[i+1])%k --> ((a[i]-a[i+1])%k+(b[i]-b[i+1])%k)%k = 0,问一个序列里有多少个满足条件的连续子序列,显然用kmp,匹配成功的条件原创 2020-07-04 16:24:52 · 315 阅读 · 0 评论 -
LightOJ - 1334 Genes in DNA KMP 求贡献思想
Genes in DNA题意给一个文本串和一个模式串,求模式串的所有前缀与后缀的组合在文本串里出现次数和。当我觉得我懂KMP的时候,KMP给了我一巴掌:不,你不懂!思路这题朴素的算法就是把模式串的前缀和后缀组合列出来,跑KMP求出现次数和。显然数据范围不允许,那考虑求贡献的方法,对于文本串中第i个字符,把所有模式串中以这个字符为结尾的前缀 的个数求出来,记为ans1[i],注意,这里的以...原创 2020-03-15 12:43:16 · 148 阅读 · 0 评论