AT_tupc2024_a Inversions of PQ and QP
题目描述
给定 $3$ 个整数 $N, A, B$。
请判断是否存在 $1$ 到 $N$ 的排列 $P=(P_1,P_2,\dots,P_N)$ 与 $Q=(Q_1,Q_2,\dots,Q_N)$,满足以下条件:
- 序列 $(P_{Q_1},P_{Q_2},\dots,P_{Q_N})$ 的逆序对数为 $A$;
- 序列 $(Q_{P_1},Q_{P_2},\dots,Q_{P_N})$ 的逆序对数为 $B$。
如果存在,构造出这样的一组 $P,Q$。
对于每组测试用例,请分别作答。
逆序对数指对于长度为 $M$ 的数列 $R=(R_1,R_2,\dots,R_M)$,满足 $1 \leq i < j \leq M$ 且 $R_i > R_j$ 的整数对 $(i, j)$ 的数量。
输入格式
输入通过标准输入给出,格式如下:
> $T$ $\mathrm{case}_1$ $\mathrm{case}_2$ $\vdots$ $\mathrm{case}_T$
每组测试用例给出如下三个整数:
> $N$ $A$ $B$
输出格式
对于每组测试用例,按顺序输出答案。
如果存在满足条件的排列 $P=(P_1,P_2,\dots,P_N)$ 和 $Q=(Q_1,Q_2,\dots,Q_N)$,输出格式为:
> Yes $P_1$ $P_2$ $\dots$ $P_N$ $Q_1$ $Q_2$ $\dots$ $Q_N$
否则输出:
```
No
```
如果存在多组解,输出任意一组均视为正确。
说明/提示
### 样例解释 1
对于第 $1$ 个输入用例,输出 $(P_{Q_1}, P_{Q_2}, P_{Q_3})=(3,2,1)$,$(Q_{P_1},Q_{P_2},Q_{P_3})=(2,1,3)$。
### 数据范围
- $1 \leq T \leq 2\times 10^5$
- $1 \leq N \leq 2\times 10^5$
- $0 \leq A \leq \frac{N(N-1)}{2}$
- $0 \leq B \leq \frac{N(N-1)}{2}$
- 所有输入均为整数
- 所有输入文件中,$N$ 的总和不超过 $2\times 10^5$
由 ChatGPT 5 翻译