题面 LOJ 3153 solution 对于任意一对\(A,B\),若区间\([A,B]\)中存在一个数权值大于\(A\)或\(B\),则用这个数来替代\(A\)或\(B\)显然更优. 故只需要考虑每一个区间的最大值与次大值分别作为\(A,B\). 可以用单调栈\(O(n)\)找到每一对这样的\(A,B\). 考虑\(f[i]\)表示以\(i\)作为\(C\)时最大的\(A+B+C\),对于每一对\(A,B\),他们对应的\(C\)一定\(\ge (2*B-A)\). 离线处理询问,从大到小枚…