摘要: 先考虑相同子串视为一个。按SAM的拓扑序预处理出从每个节点开始能得到多少个本质不同子串(注意虽然一个节点对应多个子串,但到达该点时当前的子串显然是确定为其中一个的),然后按位贪心即可。 相同子串视为多个的做法也没有本质区别。求出每个节点的right集合大小,同样预处理出从每个节点开始能得到多少个子串 阅读全文
posted @ 2019-05-03 23:06 Gloid 阅读(121) 评论(0) 推荐(0)
摘要: 差分后即求多串LCS。先考虑两个串怎么做。对第一个串建SAM,第二个串在上面跑即可,任意时刻走到的节点表示的都是第二个串的当前前缀在第一个串中出现的最长的后缀,具体计算长度时每走一个字符长度+1,跳fail时将长度重设为当前节点maxlen即可。 扩展到多串,同样对第一个串建SAM,后面每个串在上面 阅读全文
posted @ 2019-05-03 17:40 Gloid 阅读(175) 评论(0) 推荐(0)