事实上只需要用类似于一个双端队列的思路,从左往右扫一遍,每到 m≤summ \leq summ≤sum 停止扫描统计当前的 lll 到 rrr 的最大值,循环让左端点不断右移即可。这样在初始时用 nlognn\log nnlogn 维护 STSTST 表,在循环时每个元素最多进队出队一次,查找最大值也是 O(1)O(1)O(1)。