随笔分类 -  字符串--manacher

摘要:$n \leq 100000$的字符串,多次问一个区间有多少位置不同的回文串。 先插空做一次manacher,得到每个字符往左右延伸的长度$f$数组。如ACAA变*A*C*A*A*,那么所有*的$f_k$实际对应的回文串数是$\frac{f_k}{2}$(一定整除),否则是$\frac{f_k+1} 阅读全文
posted @ 2018-07-12 15:52 Blue233333 阅读(233) 评论(1) 推荐(0)
摘要:求一个字符串的∑ ∑ len[i] + len[j] - 2 * lcp(i, j),其中i,j表示从i,j开始的后缀。 方法一:SA+单调栈,自行yy。 方法二:SAM构造出来,然后每个状态对答案的贡献就是:C(|right_s|,2)*(Max_s-Max_parent_s)。前面使用的变量名含 阅读全文
posted @ 2017-12-08 20:46 Blue233333 阅读(179) 评论(0) 推荐(0)
摘要:之前看了大神博客,感觉记住一幅画就能记得这个算法。。。 17.12.8 看图记不住。看代码 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 //#include<iostream> 5 using namespace st 阅读全文
posted @ 2017-07-25 09:32 Blue233333 阅读(265) 评论(0) 推荐(0)