随笔分类 - 后缀自动机
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3879 [算法] 首先 , 后缀树有一个很好的性质 : 两个后缀的LCP等于该字符串反串后缀树上所对应的两个节点的最近公共祖先u的right集合中最长的串 , 即maxlen(u) 注意
阅读全文
摘要:[题目链接] https://codeforces.com/contest/204/problem/E [算法] 首先构建广义后缀自动机 对于自动机上的每个节点 , 维护一棵平衡树存储所有它所匹配的字符串编号 可以通过启发式合并得到 计算答案时 , 我们枚举每个右端点 , 当当前集合大小 < K时
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5337 [算法] 考虑构建后缀自动机 用fi , j表示前i个串 , 匹配到自动机上的j号节点方案数 在自动机上dp即可 , 详见代码 时间复杂度 : O(NK) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2946 [算法] 建立多串后缀树 对于后缀树上的每个点 , 判断该节点所代表的等价类是否在所以字符串中出现 , 用该点的深度更新答案 时间复杂度 : O(NL) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2806 [算法] 首先建立广义后缀自动机 注意到问题具有单调性 , 不妨对于每组询问二分答案mid 如何检验? 记fi表示前i个字符最多能选几个 , 有转移方程 : fi = max{
阅读全文
摘要:[题目链接] https://codeforces.com/problemset/problem/666/E [算法] 首先建立广义后缀自动机 对于自动机上的每一个节点建一棵动态开点线段树 对于每次询问 , S[pl..pr]所表示节点可以在多串后缀树上倍增得到 那么我们需要的就是计算该节点中出现次
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3926 [算法] 建立广义后缀自动机 对于每个叶子节点 , 以它为根 , 依次将路径上的子串加入自动机 最后统计本质不同的子串个数即可 时间复杂度 : O(N) [代码]
阅读全文

浙公网安备 33010602011771号