题目描述:
分析:
建立后缀自动机,对于同一节点上的子串,由于endpos集合相同,覆盖的大小必定随长度的增加单调不降
维护endpos集合相邻两个位置的距离,二分+线段树可以快速算出长度为\(mid\)的子串覆盖的大小
在后缀树上从下往上合并,两个位置的距离用set维护,在线段树上修改
线段树合并,set合并,用启发式合并
最后子串字典序最小可以再写一发后缀数组,我是使用的暴力判断,可能的位置与答案长度的乘积不会很大(大雾)
时间复杂度\(O(nlog^2n)\)
#include
#include
#include
#include
#include
#include
#include