![](https://img-blog.csdnimg.cn/20210806165132203.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
回文树
!
fffefw
这个作者很懒,什么都没留下…
展开
-
Common Palindromes Aizu - 2292
题意:给定S,T,询问有多少(l1,r1,l2,r2)使得S[l1,r1]回文且S[l1,r1]=T[l2,r2]。 先对S建一颗回文树,额外开一个cntt[i]数组记录t串和s串的i节点回文串的匹配个数,然后在拿T串在S的回文树上跑,这里只是跑,并不对树做任何修改,因为新开的节点对应回文串在S串里必定没有出现,而我们只需要t串和s串匹配的回文串。 #include<bits/stdc...原创 2019-08-08 09:56:11 · 171 阅读 · 0 评论 -
浅谈Palindromic Tree——回文树(回文自动机)
回文树的主要功能如下 1.求串S前缀1~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同) 2.求串S内每一个本质不同回文串出现的次数 3.求串S内回文串的个数(其实就是1和2结合起来) 4.求以下标i结尾的回文串的个数,从以下标i开头的也可以,倒着做一遍就行 回文树有两个特殊的节点0号节点和一号节点分别对应了空串和长度为−1的串,是为了添加只有一个字...原创 2019-08-07 10:07:25 · 443 阅读 · 0 评论 -
2019牛客多校赛 第六场 C Palindrome Mouse (回文树)
题意:给你一个字符串,然后把所以本质不同的回文串放入集合,然后问你有多少pair(a,b),满足a,b是回文串,且a是b的子串,问这样的pair有多少对。 在一个回文树里面,1.每一个节点对应的回文串都next是树里其后代的子串,所以一个节点i和其后代组成的pair的个数现在是sz[i]-1。2.其次每一个节点i对应的回文串又都是fail指针指向他的节点j(fail[j]=i)的子串,也包括j的...原创 2019-08-09 17:08:13 · 151 阅读 · 0 评论 -
Palisection CodeForces - 17E (回文树)
题意:给一个字符串,然后求相交的回文串的对数。 思路:求出总对数,然后利用num[i]求出不相交的对数减去即可。 顺便学了mod非质数下的逆元求法,要用扩展欧几里得求,但是也有限制要分母与mod互质才行 #include<bits/stdc++.h> using namespace std; #define ls rt<<1 #define rs (rt<&...原创 2019-08-07 20:51:37 · 168 阅读 · 1 评论