![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀自动机
文章平均质量分 79
HbFS-
di4CoveRy
展开
-
[hiho一下 第128周] 后缀自动机
题目链接:https://hihocoder.com/problemset/problem/1445求给定字符串s不同子串的个数即求该字符串构成的后缀自动机里面包含了多少个后缀等价于求这个后缀自动机里面的路径的个数每个后缀自动机节点所包含的后缀集合大小为len[p] - len[ link[p] ]其中len为该节点到根的长度,link为该节点的后缀链接求和输出即可原创 2017-01-07 21:10:16 · 408 阅读 · 0 评论 -
[hiho一下 第129周] 后缀自动机
题目来源:https://hihocoder.com/problemset/problem/1449给定字符串s,求长度为k(需要将所有的k求出来)的子串中出现最多子串的出现次数对于每一个节点u,当节点u为节点v的后缀链接,即u=link[v],那么以v为结尾的后缀包含在了u中。定义F[i]为节点i后缀集合里面所有串在s里面出现的次数,显然每一个节点里所有串出现的次数都原创 2017-01-07 21:23:00 · 558 阅读 · 0 评论 -
[hiho一下 第130周] 后缀自动机
题目来源:https://hihocoder.com/problemset/problem/1457原命题等价于求后缀自动机里面的路径数量在任意两个字符串之间插入一个符号“:",把所有的字符串连接成一个长串,直接建立后缀自动机。然后删除所有的“:”边,dp即可。正确性显然#include #include #include #include #原创 2017-01-07 23:30:21 · 387 阅读 · 0 评论 -
[acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts 后缀自动机
这题解法好多耶听到有后缀自动机的写法,就为此专门补习后缀自动机的知识把第2-n个字符串两两间用符号隔开(这个符号可以相同,只要不是小写字母即可),拼成长串插入后缀自动机扫一遍第一个字符串,和后缀自动机求最长公共字串,失配的时候更新答案后缀自动机也不只有一种方法可以做,可以在第2-n个串任意两个字符串间插入同一个特殊字符以后构建后缀自动机求最长公共字串,可以建广义后缀自动机,原创 2017-01-09 22:37:01 · 1375 阅读 · 0 评论 -
[多校][HDU5343]MZL's Circle Zhou后缀自动机+动态规划
对两个字符串都构建后缀自动机对第一个字符串,求F[i]表示从rt到i节点有多少不同的路径(即求不同的子串的个数);对第二个字符串,求G[i]表示从节点i开始往下走能走出多少不同的路径(即求不同的子串的个数);这两个动态规划都可以用拓扑排序和ch[][]数组转移完成,第二个dp可能需要将ch[][]里面的每一条边反向。枚举第一个后缀自动机里的节点u,若该节点的出边j不存在,则原创 2017-01-09 20:33:22 · 348 阅读 · 0 评论 -
[BZOJ4327][JSOI2012] 玄武密码 后缀自动机
诶KOI前复习一下板子 复习出来一堆问题 后缀自动机是两倍的点数啊/************************************************************** Problem: 4327 User: di4CoveRy Language: C++ Result: Accepted Time:3420 ms Memo原创 2017-02-12 13:22:21 · 492 阅读 · 0 评论 -
Codeforces 235C : Cyclical Quest
【大意】 给一个长度为n 的字符串s,q个询问,每次询问一个串t,问s 有多少个子串与t循环同构。(起始位置不同的子串算作多个子串) 所有的字符均为小写字母,n≤106n\leq 10^6,q≤105q\leq 10^5,∑|t|≤106\sum|t| \leq 10^6 【解答】 对s构建后缀自动机,并且利用后缀链接(parent)数组进行树上动态规划,算出每个节点的right集合大小。原创 2017-06-10 22:11:22 · 450 阅读 · 0 评论