常见套路就是把所有字符串用特殊字符分割后拼一起跑一遍 SA,记这个串为 T。设 \text{LCP}(i,j) 表示 T 的后缀 i,j 的 LCP。那么对于询问 (l,r,p_l,p_r),我们尝试找出 s[l\cdots r] 在 T 中的出现位置。显然,其能在 i 处匹配当且仅当 \text{LCP}(i,p_l)\ge p_r-p_l+1。由 height 数组相关结论可知,满足条件的 i 恰好对应 sa 数组的一段区间,可以 st 表+二分找出。然后就是一个区间众数问题,经典做法就是值域分块+莫队,直接做即可。