对于一个固定的左端点,右端点向右移动时,其子串权值和不断增大,字典序降序排名不断减小,因此对于一个左端点,最多存在一个右端点使其满足条件. 所以可以枚举左端点,然后二分右端点的位置,权值和通过前缀和来查询,现在的问题就是如何快速查询一个子串的排名. 考虑用后缀数组来解决,对于一个子串\([l,r]\),对于在位置\(l\)对应的后缀排名之前的后缀中的子串是能对该子串的排名产生贡献的. 若该子串的长度比\(l\)对应的后缀和前一个后缀的\(LCP\)大,即\(len>ht_{rk_l}\),也就是…