摘要: 「2017 山东一轮集训 Day5」字符串 \(\text{Solution:}\) 考虑只有一个串的时候,答案就是所有本质不同子串。 那么多个串,自然联想到把它们拼在一起建立 SAM. 但是如果这样,我们匹配到的一定是拼接起来的串上的连续一部分,并不是全部的答案,因为这里除了每一个串内它是可以断开 阅读全文
posted @ 2021-08-21 22:31 Refined_heart 阅读(46) 评论(0) 推荐(0) 编辑
摘要: [AHOI2013]差异 \(\text{Solution:}\) 观察一下原式: \[ \sum_{i=1}^n\sum_{j=i+1}^n \text{len}(i)+\text{len}(j)-2\text{lcp}(i,j) \] 我们发现前面那个 \(\text{len}(i)+\text 阅读全文
posted @ 2021-08-21 20:56 Refined_heart 阅读(49) 评论(0) 推荐(0) 编辑
摘要: [BJOI2020] 封印 \(\text{Solution:}\) 求一个字符串一段区间与 \(t\) 的最长公共子串。 考虑 SAM 与 AC 自动机相似的性质,按照惯例 ,我们先对 \(t\) 建立 SAM ,在上面跑出对 \(s\) 的每个前缀,其能与 \(t\) 匹配的,以 \(s_i\) 阅读全文
posted @ 2021-08-21 19:23 Refined_heart 阅读(39) 评论(0) 推荐(0) 编辑
摘要: CF235C Cyclical Quest \(\text{Solution:}\) 还是对 SAM 上一些细节的处理和理解…… 首先一个循环相当于是一个串删掉首字母再把它插入到后面形成的。 观察插入的过程,就是平凡的在 SAM 上面匹配的过程。 那删除怎么办?我们要知道 SAM 是后缀的自动机! 阅读全文
posted @ 2021-08-21 10:35 Refined_heart 阅读(59) 评论(0) 推荐(0) 编辑