完全想不到地,考虑分治. 对区间[l,r],将左端点x由mid不断左移,右边记录最右的p满足max[mid+1,p]<=max[x,mid],q满足min[mid+1,q]>=min[x,mid].这样右边被分成三部分,分别统计. 对于p和q左边的位置,这部分的max和min显然是由左边部分决定的,答案非常好算. 对于p和q右边的位置,这部分的max和min显然是由右边部分决定的,可以在分治的一开始预处理一个右区间的前缀len*max*min和max*min,这样就很好算了. 对于p和q中间的…