后缀自动机
QAQQQQQQQQQQQ
菜
展开
-
广义后缀自动机--bzoj3926: [Zjoi2015]诸神眷顾的幻想乡
因为叶子只有202020个,所以把每个叶子当作根然后把从根开始的所有子串都插入一个广义后缀自动机,这样就可以把所有串取到,每次插入的时候记录一下fafafa是哪个,从那个开始插就好了 这个要求不同子串个数要用∑i=1cntlen[i]−len[fai]\sum_{i=1}^{cnt}len[i]-len[fa_i]∑i=1cntlen[i]−len[fai] 因为faifa_ifai是iii...原创 2019-01-18 22:33:13 · 190 阅读 · 0 评论 -
后缀自动机--bzoj4032: [HEOI2015]最短不公共子串
传送门 一个题=四个题 T1 这就是对于两个串上的问题通常套路就是对一个建后缀自动机另一个在上面跑,所以对BBB建出后缀自动机然后枚举AAA的子串开头跑就行了,复杂度O(n2)O(n^2)O(n2) T2 有一个东西叫做序列自动机,但其实一点也不自动,也没有自动机该有的样子 对一个串从后往前记录每个字符出现的最近位置,然后用一个pre[i][j]pre[i][j]pre[i][j]表示iii位置往...原创 2019-01-19 11:21:18 · 194 阅读 · 0 评论 -
SAM+虚树--CF1073G Yet Another LCP Problem
传送门 这题调的我两眼发黑。。。 首先想SAMSAMSAM建出来就是反串的后缀树,那么把原串反转一下,求后缀的lcplcplcp就变成了求前缀的最长后缀,在SAMSAMSAM上就是两个代表节点lcalcalca的lenlenlen,用这些关键点和他们的lcalcalca建出虚树,然后在虚树上跑,设siza[u],sizb[u]siz_a[u],siz_b[u]siza[u],sizb[u]分别...原创 2019-01-14 22:28:04 · 314 阅读 · 0 评论