AT_arc208_d [ARC208D] Symmetric Matrix

题目描述

给定一个长度为 $N$ 的整数序列 $Y=(Y_1,Y_2,\ldots,Y_N)$,其中每个元素都在 $1$ 到 $N$ 之间(包含 $1$ 和 $N$)。 判断是否存在一个 $N \times N$ 的整数矩阵 $A=(A_{i,j})$($1 \le i, j \le N$),满足如下所有条件,并在存在时给出一种构造方案: - $1\le A_{i,j} \le N$ ($1\le i \le N,\ 1\le j\le N$)。 - $A_{i,j}=A_{j,i}$ ($1\le i\le N,\ 1\le j\le N$)。 - $A_{i,j_1} \neq A_{i,j_2}$ ($1\le i\le N,\ 1\le j_1 < j_2 \le N$)。 - $A_{i,Y_i} = 1$ ($1\le i\le N$)。 共有 $T$ 组测试数据,依次解决每组数据。

输入格式

输入从标准输入读入,格式如下: > $T$ > > $\text{case}_1$ > > $\text{case}_2$ > > $\vdots$ > > $\text{case}_T$ 每组测试数据的格式如下: > $N$ > > $Y_1$ > > $Y_2$ > > $\ldots$ > > $Y_N$

输出格式

请按照输入顺序输出每组测试数据的答案,每组结果之间用换行分隔。 对于每一组数据,如果不存在满足条件的矩阵 $A$,输出 No。 否则,输出满足条件的矩阵 $A$,格式如下: > Yes > > $A_{1,1}$ $A_{1,2}$ $\ldots$ $A_{1,N}$ > > $A_{2,1}$ $A_{2,2}$ $\ldots$ $A_{2,N}$ > > $\vdots$ > > $A_{N,1}$ $A_{N,2}$ $\ldots$ $A_{N,N}$ 如果有多个 $A$ 满足要求,输出任意一个均可。

说明/提示

### 样例解释 1 以第一个测试用例为例,可以验证样例输出中的 $A$ 确实满足所有条件。除此之外,例如如下 $A$ 也同样符合要求: ``` 1 3 2 3 2 1 2 1 3 ``` ### 数据范围 - $1\le T\le 5000$ - $1\le N \le 500$ - 所有测试用例的 $N^2$ 之和不超过 $500^2$。 - $1\le Y_i\le N$ - 所有输入数值均为整数。 由 ChatGPT 5 翻译