[题解]CF666E
同学们都用 \(SAM\) 过了,那我发一个 \(SA\) 的题解
考虑使用 \(SA\) 的流氓做法,把所有串拼在一起
容易发现符合条件的子串满足 \(lcp(x,pl)\geq (r-l+1)\) ,即 \(rk\) 上连续的一段
二分找出每个询问的左边界和右边界,问题就转化为了一个区间众数问题
可以使用经典的 \(O(n \sqrt n )- O(\sqrt n)\) 区间众数求法
我这里偷懒,写了个莫队+线段树的 \(O(q \sqrt n \log m)\) 做法。这样写容易被卡常,可以调一下莫队的参数(但是跑得还挺快的?)
                    
                
                
            
        
浙公网安备 33010602011771号