AT_arc221_e [ARC221E] Two Increasing Sequences
题目描述
给定一个正整数 $N$,一个正整数 $X$,以及 $P=(P_1,P_2,\ldots,P_N)$,其中 $P$ 是 $(1,2,\ldots,N)$ 的一个排列。$X$ 以二进制形式给出,而 $N$ 和 $P$ 的元素以十进制形式给出。
请判断是否存在两个仅包含非负整数的序列 $A=(A_1,A_2,\ldots,A_N)$ 和 $B=(B_1,B_2,\ldots,B_N)$,满足如下所有条件:
- $A$ 和 $B$ 都是严格递增序列。
- 对于所有 $i=1,2,\ldots,N$,有 $A_{P_i} = B_i \oplus X$。
其中,$\oplus$ 表示按位异或运算。
共有 $T$ 个测试用例,请分别求解每个测试用例。
输入格式
输入从标准输入读入,格式如下:
> $T$
>
> $\text{case}_1$
>
> $\text{case}_2$
>
> $\vdots$
>
> $\text{case}_T$
每组测试用例格式如下:
> $N\ X\ P_1\ P_2\ \ldots\ P_N$
输出格式
按输入顺序为每个测试用例输出一行答案。
若存在满足条件的 $A$ 和 $B$,输出 `Yes`,否则输出 `No`。
说明/提示
### 样例解释 1
以第一个测试用例为例,$A=(2,3,5,7)$,$B=(0,2,6,7)$ 满足条件。
### 约束条件
- $1\le T\le 10^5$
- $2\le N\le 2\times 10^5$
- $1\le X < 2^{10^6}$
- $P$ 是 $(1,2,\ldots,N)$ 的一个排列。
- 所有测试用例中 $N$ 的总和不超过 $2\times 10^5$。
- 所有测试用例中 $X$ 的二进制位数的总和不超过 $10^6$。
- $T,N,P_i$ 以十进制给出。
- $X$ 以二进制(无前导零)给出。
- 所有输入值均为整数。
由 ChatGPT 5 翻译