【CF700E】Cool Slogans

题意:

选出k个字符串,使得每个在前一个中至少出现两次,求k的最大值

题解:

首先我们考虑后缀自动机

定义f[i]表示在i这个状态,做多达到sf[i]

那么我们更新的时候,只需要查询上一次改变的时候,这就是个two-point-two

那怎么查询是否有两个呢

只需要查询r集合就可以了

线段树合并求r集合就可以了

代码:

猜你喜欢

转载自www.cnblogs.com/yinwuxiao/p/9459443.html
今日推荐