AT_abc431_g [ABC431G] One Time Swap 2
题目描述
给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。
对于一对整数 $(l, r)\ (1\leq l\lt r\leq N)$,定义 $f(l,r)$ 为将 $A$ 的第 $l$ 个元素与第 $r$ 个元素互换后得到的整数序列。
请用如下过程生成长度为 $\frac{N(N-1)}{2}$ 的整数序列序列 $B=(B_1,B_2,\ldots,B_{\frac{N(N-1)}{2}})$:
- 准备一个空序列 $B=()$。
- 对于每一对整数 $(l, r)\ (1\leq l\lt r\leq N)$,将 $f(l,r)$ 加入 $B$。
- 按字典序(即串的字典序)对 $B$ 的各个序列进行排序。
现在给定 $Q$ 个询问,请依次处理每个询问。第 $i$ 个询问如下:
- 给定一个整数 $k$,找出一对整数 $(l, r)\ (1\leq l\lt r\leq N)$,使得 $B_k=f(l,r)$,并输出这对整数。
什么是序列的字典序?对于两个序列 $S = (S_1,S_2,\ldots,S_{|S|})$ 和 $T = (T_1,T_2,\ldots,T_{|T|})$,我们说 $S$ **字典序小于** $T$,当且仅当满足以下两个条件之一。这里 $|S|$ 和 $|T|$ 表示 $S$ 和 $T$ 的长度。
1. $|S| \lt |T|$ 且 $(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})$。
2. 存在一个整数 $1 \leq i \leq \min\lbrace |S|, |T| \rbrace$,使得以下两点都成立:
- $(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})$
- $S_i$ 小于 $T_i$(按数值比较)。
输入格式
输入按以下格式给出:
> $N\ Q\ A_1\ A_2\ \ldots\ A_N\ \mathrm{query}_1\ \mathrm{query}_2\ \vdots\ \mathrm{query}_Q$
每个查询的格式如下:
> $k$
输出格式
输出 $Q$ 行。第 $i$ 行应包含该查询的答案,格式如下:
> $l\ r$
如果有多组解,输出任意一组都视为正确。
说明/提示
## 样例解释 1
$f(1, 2) = (2, 1, 1, 2),\ f(1, 3) = (1, 2, 1, 2),\ f(1, 4) = (2, 2, 1, 1),\ f(2, 3) = (1, 1, 2, 2),\ f(2, 4) = (1, 2, 1, 2),\ f(3, 4) = (1, 2, 2, 1)$。
按字典序排序这六组序列后,得到 $B=((1, 1, 2, 2), (1, 2, 1, 2), (1, 2, 1, 2), (1, 2, 2, 1), (2, 1, 1, 2), (2, 2, 1, 1))$。
- 对于第 $1$ 个询问,唯一满足 $B_1=(1,1,2,2)=f(l,r)$ 的 $(l,r)$ 为 $(2,3)$。
- 对于第 $2$ 个询问,所有满足 $B_3=(1,2,1,2)=f(l,r)$ 的 $(l,r)$ 为 $(1,3),(2,4)$,这两组都可选。
- 对于第 $3$ 个询问,唯一满足 $B_5=(2,1,1,2)=f(l,r)$ 的 $(l,r)$ 为 $(1,2)$。
### 数据范围
- $2\leq N\leq 2\times 10^5$
- $1\leq Q\leq 2\times 10^5$
- $1\leq A_i\leq N$
- $1\leq k\leq \frac{N(N-1)}{2}$
- 所有输入均为整数。
由 ChatGPT 5 翻译