CF1994D Funny Game

题目描述

Vanya 有一个包含 $n$ 个顶点的图(顶点编号为 $1$ 到 $n$),以及一个长度为 $n$ 的整数数组 $a$。最初,图中没有任何边。Vanya 感到无聊,为了娱乐,他决定进行 $n-1$ 次操作。 第 $x$ 次操作(操作按顺序从 $1$ 开始编号)如下: - 选择两个不同的数 $1 \leq u, v \leq n$,使得 $|a_u - a_v|$ 能被 $x$ 整除。 - 在顶点 $u$ 和 $v$ 之间添加一条无向边。 请你帮助 Vanya 使用这 $n-1$ 次操作得到一个连通图,或者判断这不可能。 一个图被称为连通的,当且仅当对于任意两个顶点,都可以通过若干条边相互到达。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 10^{3}$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 2000$),表示图中顶点的数量。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \cdots, a_n$($1 \leq a_i \leq 10^9$)。 保证所有测试用例中 $n$ 的总和不超过 $2000$。

输出格式

对于每个测试用例,如果无解,输出 "No"(不带引号)。 否则,输出 "Yes"(不带引号),然后输出 $n-1$ 行,每行输出两个数 $u$ 和 $v$,表示第 $i$ 次操作应选择的顶点。 你可以以任意大小写输出字母(例如 "yEs"、"yes"、"Yes"、"YES" 都会被识别为正解)。

说明/提示

我们来看第二个测试用例。 - 第一次操作($x=1$):我们可以连接顶点 $4$ 和 $1$,因为 $|a_4 - a_1| = |13 - 99| = 86$,$86$ 能被 $1$ 整除。 - 第二次操作($x=2$):我们可以连接顶点 $2$ 和 $1$,因为 $|a_2 - a_1| = |7 - 99| = 92$,$92$ 能被 $2$ 整除。 - 第三次操作($x=3$):我们可以连接顶点 $3$ 和 $2$,因为 $|a_3 - a_2| = |1 - 7| = 6$,$6$ 能被 $3$ 整除。 从图中可以看出,最终得到了一个连通图。 由 ChatGPT 4.1 翻译