T2

考虑将所有数排序再二进制拆分,那么得到这样一个排列图

000|11111

00|1|00|11

0|1|0|0|1|0|1

枚举中间位 $j$ ,那么若 j 的这一位为 1,相当于01反转

变成统计每一层左右有多少个编号小于/大于自身的个数

画两根数轴,每根数轴表示0/1的编号

枚举下方的每一个区间,等价于问区间中有多少个待查寻线段

前缀和预处理一下即可

T3

换成与先
$$
\begin{eqnarray}&& \sum_{i=1}^{n-1}i \oplus (n-i)\
&=& \sum_{i=1}^{n-1} i+n-i-i & (n-i)\
&=& n(n-1)-\sum_{i=1}^{n-1} i & (n-i)\
\end{eqnarray}
$$