菜鸡万年更博。
全是菜题。
SP1811 LCS - Longest Common Substring
对一个串建立自动机,另一个串在自动机上遍历,失配时跳father更新即可。ans=遍历到的点的len的最大值。
#include#include #include #include #include #include #include #include #include #include
SP1812 LCS2 - Longest Common Substring II
可以跟上题一样做,也可以建个广义后缀自动机。
#include#include #include #include #include #include #include #include #include #include
#include#include #include #include #include #include #include #include #include #include
SP10570 LONGCS - Longest Common Substring
三倍经验
#include#include #include #include #include #include #include #include #include #include
P3181 [HAOI2016]找相同字符
求出每个子串在两个串中的出现次数,乘上每个点代表的不同子串个数len[p]-len[fa[p]]即可。
#include#include #include #include #include #include #include #include #include #include
P3975 [TJOI2015]弦论
求出每个点后有多少串,然后按照字典序像splay一样二分出来就就可以了。
#include#include #include #include #include #include #include #include #include #include
SP7258 SUBLEX - Lexicographical Substring Search
跟上个一样的题。
#include#include #include #include #include #include #include #include #include #include
P4070 [SDOI2016]生成魔咒
“每个点代表的不同子串个数是len[p]-len[fa[p]]”,每次插入ans加上len[lst]-len[fa[lst]]即可。
#include#include #include #include #include #include #include #include #include #include #include
BZOJ 3277 串
建广义后缀自动机,求出每个子串出现在几个串中看是否能产生贡献。每个点加上父亲的贡献,因为父亲一定会在这儿出现。
#include#include #include #include #include #include #include #include #include #include #include
P4248 [AHOI2013]差异
把串倒着插入,两个子串的lcp长度就是他们在parent树上的祖先的长度。
记录每个点子树的后缀个数,计算与它父亲的其他儿子产生的贡献=siz[p]*siz[fa[p]]*len[fa[p]]。
#include#include #include #include #include #include #include #include #include #include
P2178 [NOI2015]品酒大会
差不多和上个题一样。
两个r相似的串可以看做是从p,q开始的两个后缀的lcp长度为r。
最初ans1[r]求的是lcp恰好长为r的个数,ans2[r]求的是恰好为r的最大值。
最后再求个后缀和和后缀max就可以了。
#include#include #include #include #include #include #include #include #include #include
CF873F Forbidden Indices
被禁止就当做没出现,否则当做出现。
#include#include #include #include #include #include #include #include #include #include
CodeChef Killjee and k-th letter
做不下去了, 还没有看懂它建后缀树的地方,等待zbq解答ing..
#include#include #include #include #include #include #include #include #include #include #include