随笔分类 - 字符串 - 后缀自动机
摘要:一道裸题,可以考虑自底向上去更新方案数与最大值。 没啥难的 细节........ Code:
阅读全文
摘要:很水的一道题,就是有些细节没注意到. 比如说将调试信息误以为是最终结果而多调了20分钟QAQ ..... 我们注意到,每新加一个节点,改变的是该节点沿着 Parent 走一直走到根节点. 对应的,在 LCT 上进行修改即可. 改变一个节点的 Parent,就对应 cut 断掉原边后将新边连接即可.
阅读全文
摘要:题中要求: $\sum_{1\leqslant i < j \leq n } Len(T_{i}) +Len(T_{j})-2LCP(T_{i},T_{j})$ 公式左边的部分很好求,是一个常量,关键在于如何求取右边的 $2*LCP(T_{i},T_{j})$ 在后缀自动机中,任意两个字符串所代表的
阅读全文
摘要:说实话没啥难的. 建一棵广义后缀自动机,暴力自底向上更新即可. 时间复杂度非常玄学,但据说是可以过的. 要注意每个串中相同的子串的贡献是都要加进去的,开始因为这个被坑了好久 QAQ Code:
阅读全文
摘要:字典序第 k 大 沿着自动机的边走即可,比较水的一道题吧. Code:
阅读全文
摘要:对所有字符串构建一颗广义后缀自动机. 构建过程总,如果转移边已经存在,则说明转移到的字符串在之前出现过,所以该字串的所有字串也都出现过. 那么,就对该点打上标记,对整个后缀树进行一边深度优先搜索. 更新答案即可. Code:
阅读全文
摘要:建立广义后缀自动机,对每个节点都建立各自的 $Parent$ 数组. 这样方便统计,不会出现统计错误. 考虑新加入一个字符. 1 这条转移边已经存在,显然对答案没有贡献. 2 这条转移边不存在,贡献即为 $dis[np]-dis[f[np][id]]$ 考虑一下为什么 2 是对的. 当新建一个节点时
阅读全文
摘要:讲起来不是特别好讲.总之,如果 $dp[i+1]>=dp[i]$,故$dp[i]=max(dp[i],dp[i+1])$ Code:
阅读全文
摘要:题目描述:给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数。两个方案不同当且仅当这两个子串中有一个位置不同。 输入输出格式输入格式:两行,两个字符串 s1,s2,长度分别为n1,n2。1 <=n1, n2<= 200000,字符串中只有小写字母 输出格式:输出一个整数表示答
阅读全文
摘要:后缀自动机模板题. 关键时求解每个节点的 $right$ 大小. 由于后缀自动机在构建时会保证点和点的 $right$ 只可能没有交集,或者一个是另一个的真子集,我们可以不重复的对 $right$ 进行统计与更新. 从长度大的子串向前更新,沿着 $parent$ 跳即可. 最后再枚举一下. Code
阅读全文
摘要:后缀自动机沙茶题 将字符串复制一次,建立后缀自动机. 在后缀自动机上贪心走 $n$ 次即可. Code:
阅读全文

浙公网安备 33010602011771号