字符串:回文自动机
文章平均质量分 91
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
URAL - 1960 Palindromes and Super Abilities 回文自动机
题意:逐个字符的添加一个字符串,问每添加一个字符显存的字符串的总不同的回文子串的个数。 回文树自动机 首先推荐篇比较好的讲回文自动机即回文树的博客, Palindromic Tree——回文树【处理一类回文串问题的强力工具】 按照功能翻译是回文自动机,按照自字面翻译是回文树。 然后这题把Palindromic_Tree原来的void add成员函数,改成在出现新的回文子串的时候(!nxt[cur][c])返回1否则返回0即可。 复杂度 O(n)原创 2017-03-07 22:04:53 · 783 阅读 · 0 评论 -
Codeforces 17E Palisection 回文自动机+邻接表
题意:给出一个字符串要求找出多少对有相交部分的回文子串。 回文自动机+邻接表 首先,直接求这个问题比较麻烦,故可以转化为总的回文子串的对数减掉不相交的回文子串的对数。 故先预处理出suml[i]表示从左到到,0~i-1内的回文子串的个数, 然后倒的再建一个自动机,每次 lesr = num[last]表示插入这个字符以后以这个字符结尾的回文子串的个数,然后 suml[i] * lesr就是此时的不相交的回文子串的对数, 然后对于每个i都求出不相交的回文子串的对数,然后总对数减去这个即可。 之后就是超内存的问原创 2017-03-10 00:45:34 · 1087 阅读 · 0 评论