题意:
选出k个字符串,使得每个在前一个中至少出现两次,求k的最大值
题解:
首先我们考虑后缀自动机
定义f[i]表示在i这个状态,做多达到sf[i]
那么我们更新的时候,只需要查询上一次改变的时候,这就是个two-point-two
那怎么查询是否有两个呢
只需要查询r集合就可以了
线段树合并求r集合就可以了
代码:
题意:
选出k个字符串,使得每个在前一个中至少出现两次,求k的最大值
题解:
首先我们考虑后缀自动机
定义f[i]表示在i这个状态,做多达到sf[i]
那么我们更新的时候,只需要查询上一次改变的时候,这就是个two-point-two
那怎么查询是否有两个呢
只需要查询r集合就可以了
线段树合并求r集合就可以了
代码: