AT_tupc2024_f Another Long Sequence Inversion
题目描述
给定非负整数 $L, R, X$,以二进制形式给出。请用二进制输出长度为 $R-L+1$ 的整数序列 $(L \oplus X, (L+1)\oplus X, \dots, R\oplus X)$ 的逆序对数。
其中,$\oplus$ 表示按位异或操作。
一共有 $T$ 组测试数据,分别求出每组的答案。
逆序对数的定义如下:对于数列 $B=(B_1,B_2,\dots,B_M)$,逆序对是满足 $1 \leq i < j \leq M$ 且 $B_i > B_j$ 的整数对的个数。
按位异或的定义如下:对于非负整数 $A,B$,它们的异或 $A \oplus B$ 是指将 $A,B$ 按二进制表示后,每一位如果 $A$ 或 $B$ 在该位上有且只有一个是 $1$,则结果该位为 $1$,否则为 $0$。
例如,$3 \oplus 5 = 6$,二进制表示为:$011 \oplus 101 = 110$。
输入格式
输入以如下格式从标准输入给出。
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据的格式如下:
> $L$ $R$ $X$
输出格式
输出共 $T$ 行。第 $i$ 行输出第 $i$ 个测试数据的答案。
说明/提示
## 部分分
对于满足额外约束 $T \leq 3000, R < 2^{30}, X < 2^{30}$ 的数据集,若答案正确可获得 $10$ 分。
## 样例解释 1
对于第 $1$ 个测试数据,将 $L,R,X$ 转为十进制分别为 $L=5, R=8, X=2$。$(5\oplus 2, 6\oplus 2, 7\oplus 2, 8\oplus 2)=(7,4,5,10)$,所要求的逆序对数为 $2$。
# 数据范围
- $1 \leq T \leq 2 \times 10^5$
- $0 \leq L \leq R < 2^{2\times 10^5}$
- $0 \leq X < 2^{2\times 10^5}$
- 所有输入均为整数
- $T$ 用十进制给出
- $L, R, X$ 用二进制给出,且不含前导多余 $0$($0$ 例外,视为一位整数)
- 单个输入文件中 $R$ 的所有二进制位数之和不超过 $2\times 10^5$
- 单个输入文件中 $X$ 的所有二进制位数之和不超过 $2\times 10^5$
由 ChatGPT 5 翻译