摘要: "嘟嘟嘟" 裸的矩阵快速幂,构造一个$(k + 1) (k + 1)$的矩阵,把sum[n]也放到矩阵里面就行了。 c++ include include include include include include include include include include using na 阅读全文
posted @ 2019-02-28 22:13 mrclr 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 第一眼肯定是SAM,然后觉得前缀不好做,就翻过来变成后缀好了。 这样就是所有前缀的最长公共后缀之和。 然后还得知道,parent树上两点的最长公共后缀就是lca。 式子不要拆开,定义每一条边的边权就是$len[fa] - len[p]$,那么相当于求两点之间的路径之和。 考虑每一条边的贡献, 阅读全文
posted @ 2019-02-28 17:02 mrclr 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 SAM。 把第一个串建成后缀自动机,然后放第二个串上去跑。 匹配到了一个节点,对答案的贡献应该是这个点到根节点的路径上的所有节点代表的字符串个数乘以对应的出现次数之和。 每一个点代表的字符串个数就是$len[p] - len[link[p]]$,出现次数就是$size[p]$,而到根节点的这 阅读全文
posted @ 2019-02-28 16:16 mrclr 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 学了好几天后缀自动机,总算是真正搞懂了,才敢来发博客。 后缀自动机是啥以及怎么构造就不说了,毕竟有很多博客比我讲的好多了。 还是按照国际惯例,推荐几发: hiho一下 127~132周 后缀自动机入门 史上最通俗的后缀自动机详解 先谈谈我对parent tree的理解: 首先由后缀链接构成的树就叫做 阅读全文
posted @ 2019-02-28 16:08 mrclr 阅读(479) 评论(0) 推荐(0) 编辑