QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

# 9641. Two permutations

统计

题目描述

小 $D$ 有一个长度为 $2n$ 的序列 $a_1, a_2, a_3, \dots, a_{2n}$,其中 $1 \sim n$ 的每一个数在这个序列中都恰好出现了两次。并且 $a_1, a_2, a_3, \dots, a_n$ 构成了一个 $1 \sim n$ 的排列。

小 $D$ 记数字 $i$ 的两个出现位置为 $x_i, y_i$ 满足 $1 \le x_i \le n < y_i \le 2n$。

小 $D$ 还定义了一个集合运算 $\oplus$ 如下。

$A \oplus B = \{x \mid [x \in A] + [x \in B] = 1\}$

定义 $f(S)$ 表示的是 $S$ 中最小没有出现过的正整数。

现在小 $D$ 会告诉你 $v_i = f(\{a_{x_i}\} \oplus \{a_{x_i+1}\} \oplus \cdots \oplus \{a_{y_i}\})$。他希望你根据序列 $v$ 构造一个序列 $a$ 使其符合条件。

输入格式

第一行为一个正整数 $T$,表示数据组数。

接下来 $2T$ 行,描述 $T$ 组数据。

每组数据的第一行为一个正整数 $n$,表示序列中出现的数字数量。

每组数据的第二行为 $n$ 个正整数 $v_1, v_2, v_3, \dots, v_n$,表示求出来的值。

输出格式

对于所有的 $T$ 组数据输出答案。

每组数据的第一行为一个字符串 Yes 或者是 No,表示是否有解。

如果有解那么在第二行输出 $2n$ 个正整数 $a_1, a_2, a_3, \dots, a_{2n}$,表示你构造出的序列,如果存在多组符合条件的构造随便给出一组即可

样例

样例输入
2
4
1 2 2 2
3
3 2 1
样例输出
Yes
3 2 4 1 4 2 3 1
No

数据范围

子任务编号 $n \le$ $\sum n \le$ 特殊性质 分数
$1$ $5$ $50$ $ $ $10$
$2$ $10$ $100$ $10$
$3$ $2 \times 10^5$ $2 \times 10^6$ $A$ $15$
$4$ $2 \times 10^5$ $2 \times 10^6$ $B$ $15$
$5$ $2 \times 10^5$ $2 \times 10^6$ $ $ $50$

特殊性质 $A$:满足 $v_i \le 4$。

特殊性质 $B$:满足 $v_{v_i} = v_i$。

对于 $100\%$ 的数据,满足 $1 \le T \le 10$,$1 \le n \le 2 \times 10^5$,$1 \le \sum n \le 2 \times 10^6$,$1 \le v_i \le n$。

下发文件的答案文件中并不存在构造方案。