我们考虑每个点成为区间左端点时合法的右区间范围,我们假定a是下标比i大的且值比i大的最小下标,b是下标比a大且值比i大的最小下标,那么以i为左端点的合法区间范围应是[a, b -1]。同理我们也能求出i是区间右端点时合法的区间[ql, qr]。set即可完成。我们从左往右扫,每个点是左端点时的合法区间[l, r]应该在l插入,并且在r删除,扫到一个点i时,应询问在其合法区间[ql, qr]内有多少个合法左端点。树状数组即可完成。复杂度O(nlog(n)) #include <cstdio> #include <algorithm> #include <cstrin...