![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回文树
Spy97
这个作者很懒,什么都没留下…
展开
-
BZOJ 5384 有趣的字符串题 最详细的题解
题意给一个长度为n的字符串,m次询问(l,r)求l到r内本质不同的回文子串数量题解看各路题解,一脸懵逼终于在《金策 字符串算法选讲》中找到了关键疑惑答案先说暴力离线询问对r排序,考虑增加一个字符,右边界到了r,每次在回文树上暴力跳fail统计以r为结尾的新增回文串。注意到每一个回文串影响的左端点是一个区间比如说当前枚举到的回文串为b,那么左区间落在[上次b出现的位置的起点+1,本次b...原创 2019-08-05 11:59:02 · 763 阅读 · 0 评论 -
HDU 5421 Victor and String 回文树
题意一开始一个空串,4中操作1.首部添加一个字符2.尾部添加一个字符3.询问当前串的回文串种类数4.询问当前串的回文串个数题解对回文树进行改造对于指向串尾的指针,这时需要两个变量维护 L,RL,RL,R ,从中间位置开始先两侧扩展同理,指向上一个回文串结点的 lastlastlast 也需要变为两个 last[0],last[1]last[0],last[1]last[0],l...原创 2019-08-24 18:29:23 · 123 阅读 · 0 评论 -
Gym 100543G Virus synthesis
题意有AGTC四种字符,一开始有一个空串,每次操作,可以在首或尾加任意个字符,或者将已有字符镜面复制(左右两种复制方法),要求最少的操作步数使得得到给出的字符串题解首先,最后的串一定是从他的回文子串向两侧添加得到的所以,只需要考虑构成回文串的最小操作数设回文树树中一节点 uuu, 其答案为 dp[u]dp[u]dp[u],长度为 len[u]len[u]len[u],其父亲为 vvv...原创 2019-08-25 12:31:40 · 324 阅读 · 0 评论 -
Codeforces 932G Palindrome Partition
题意给一个串,划分成k个部分,使得这k个部分整体是回文题解转化为 s1sns2sn−1...sn/2sn/2+1s_1s_ns_2s_{n-1}...s_{n/2}s_{n/2+1}s1sns2sn−1...sn/2sn/2+1变为划分为k个部分,每个部分内部是回文dpdpdp 方程很好想, dp[i]=∑dp[j]∗[s[j+1,i]为回文]dp[i]=\sum dp[...原创 2019-08-26 12:07:29 · 174 阅读 · 0 评论 -
LOJ 6070基因 回文树 分块
提交链接题解分为n\sqrt{n}n 个块,每个块预处理出起点到 n 的回文树,需要保存的信息有区间的回文串种类个数、区间的某种结点出现的最早位置以及区间的最长回文前缀对应的结点后两个都是为了向前插入准备的这是因为,如果向前插入的过程中,产生的一个新的结点,我们需要看这个结点在区间内是否出现过,此外,向前插入,需要从最长回文前缀开始这道题需要对回文树有深入的理解,并且要用到翁文涛在...原创 2019-08-27 09:26:37 · 254 阅读 · 0 评论