传送门 对于每个点,用单调栈求出它左右第一个比他大的位置。 然后对每个点 O ( l o g a i ) O(log_{a_i}) O(logai)求出第一个拥有跟它不同二进制位的位置。 然后容斥一下就行了。 代码