摘要: 构建过程 基数排序 tips:先比较低位,再比较高位 时间复杂度 o(nk) 其中 k 表示位数 思考:如果我把一个串的位数压缩的尽可能小 ??? 倍增优化。考虑每一轮让比较的长度变为原来的两倍。 结构 一些应用 先引入两个新的数组:height[i] 表示 sa[i] 和 sa[i-1] 的最长公 阅读全文
posted @ 2022-01-25 21:25 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0)
摘要: 思路是这样的 我们考虑二分答案串 然后对于每个后缀,找到最近的至少要切割的位置 大概转化出来就是叫你在 [l,r] 内必须切一刀 (这个都会吧) 关键在于怎么二分。 理论上本质不同的子串只有 o(n^2) 个,但是暴力对每个子串排序的复杂度非常高 所以二分排名。 那么考虑在 sa 数组中从小到大扫一 阅读全文
posted @ 2022-01-25 10:25 仰望星空的蚂蚁 阅读(9) 评论(0) 推荐(0)