
后缀自动机
文章平均质量分 64
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2882 工艺 后缀自动机
题目大意:最小表示法模板题不会最小表示法,拿后缀自动机水了一发~~一开始还写挂了MLE…… 权当练习一下SAM的熟练度了0.0#include #include #include #include #include #define M 300300using namespace std;int n,a[M];namespace Suffix_Automaton{ st原创 2014-12-16 11:32:31 · 2586 阅读 · 0 评论 -
BZOJ 2555 Substring 后缀自动机+Link-Cut-Tree
题目大意:给定一个初始字符串,提供两种操作:1.在这个字符串的后面连接一个字符串2.询问某个字符串在当前串中出现了多少次SAM大叔的自动机~~对于每个询问就是在后缀自动机上找到该子串所对应的节点 找不到返回0然后这个节点的Right集合的大小就是这个子串的出现次数每次Extend的时候将新建节点沿着parent指针到根的路径上所有点的Right集合大小+1即可分裂节点的原创 2014-12-12 15:08:23 · 3738 阅读 · 0 评论 -
BZOJ 3238 AHOI2013 差异 后缀自动机
题目大意:给定一个字符串,求Σ[1前两项是可以O(1)求的 我们要求的就是LCP之和对反串建立后缀自动机 那么parent指针连成的树就是后缀树直接在后缀树上DP就行- -对于每个节点统计所有子树两两right集合大小乘积之和乘上这个节点的深度即可QY神在学校讲了一天的SAM。。。 现在我觉得我还是回去学大型建筑机械吧233- -#include #include #i原创 2015-01-05 14:20:13 · 2510 阅读 · 0 评论 -
BZOJ 2946 Poi2000 公共串 后缀自动机
题目大意:求n个串的最长公共子串太久没写SAM了真是……将第一个串建成后缀自动机,用其它的串进去匹配每个节点记录每个串在上面匹配的最大长度那么这个节点对答案的贡献就是所有最大长度的最小值对所有贡献取最大就行了= = 这最大最小看着真是别扭#include #include #include #include #define M 10100using namespa原创 2015-03-09 21:00:56 · 1756 阅读 · 0 评论 -
BZOJ 3926 Zjoi2015 诸神眷顾的幻想乡 后缀自动机
题目大意:给定一棵树,每个节点有一个字符,求从一个节点出发沿最短路径走到另一个节点所构成的字符串一共有多少种此生无悔入东方,来世愿生幻想乡题目戳这里注意一句话:太阳花田的结构比较特殊,只与一个空地相邻的空地的数量不超过20个有奖问答:↑你看到这句话的第一反应是啥?1.度数2.叶节点数仔细看几遍就能找到答案~[捂脸熊]陈老师真是语文高手。。。。叶节点数直接从每原创 2015-04-03 18:37:25 · 2569 阅读 · 0 评论 -
BZOJ 3998 TJOI2015 弦论 后缀自动机
题目大意:求严格/非严格K小子串 首先建立Sam 然后BFS一遍求出每个点代表状态的出现次数 此时如果是严格的那么每个点代表状态的出现次数都应该是1 然后DFS一遍求出每个节点的后继状态个数 然后就随便搞了啊= = 妈了个鸡卡常数。。。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>原创 2015-04-21 18:46:36 · 2861 阅读 · 0 评论 -
BZOJ 4032 HEOI2015 最短不公共子串 后缀自动机+序列自动机+BFS
题目大意:给定字符串A和B,求A最短的子串/子序列S满足S不是B的子串/子序列 这题真TM有毒*2 搞法类似这道题 然后子串是后缀自动机 子序列自然就是序列自动机了= = 每更新一个x节点时所有没有x的后继的节点都连向这个节点 每个节点的parent是这个字母上一次出现的位置 每个字母记录最后一次出现的位置 更新指针时沿着parent指针撸一遍就行了#include <cstdio>#原创 2015-04-27 20:58:40 · 2293 阅读 · 0 评论