CF1994D.Funny Game
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Vanya 有一个包含 n 个顶点的图(顶点编号为 1 到 n),以及一个长度为 n 的整数数组 a。最初,图中没有任何边。Vanya 感到无聊,为了娱乐,他决定进行 n−1 次操作。
第 x 次操作(操作按顺序从 1 开始编号)如下:
- 选择两个不同的数 1≤u,v≤n,使得 ∣au−av∣ 能被 x 整除。
- 在顶点 u 和 v 之间添加一条无向边。
请你帮助 Vanya 使用这 n−1 次操作得到一个连通图,或者判断这不可能。
一个图被称为连通的,当且仅当对于任意两个顶点,都可以通过若干条边相互到达。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 t(1≤t≤103),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤2000),表示图中顶点的数量。
每个测试用例的第二行包含 n 个整数 a1,a2,⋯,an(1≤ai≤109)。
保证所有测试用例中 n 的总和不超过 2000。
输出格式
对于每个测试用例,如果无解,输出 "No"(不带引号)。
否则,输出 "Yes"(不带引号),然后输出 n−1 行,每行输出两个数 u 和 v,表示第 i 次操作应选择的顶点。
你可以以任意大小写输出字母(例如 "yEs"、"yes"、"Yes"、"YES" 都会被识别为正解)。
输入输出样例
输入#1
8 2 1 4 4 99 7 1 13 5 10 2 31 44 73 5 87 6 81 44 32 5 62 35 33 79 16 5 6 51 31 69 42 5 52 63 25 21 5 12 33 40 3 11 31 43 37 8 50 5 12 22
输出#1
YES 2 1 YES 4 1 2 1 3 2 YES 5 1 4 1 3 1 2 1 YES 4 1 3 1 2 1 5 4 YES 3 1 5 1 2 1 4 2 YES 4 1 5 1 2 1 3 2 YES 2 1 5 2 3 1 4 3 YES 9 1 12 9 11 1 10 1 6 1 7 6 2 1 8 2 5 2 3 1 4 1
说明/提示
我们来看第二个测试用例。
-
第一次操作(x=1):我们可以连接顶点 4 和 1,因为 ∣a4−a1∣=∣13−99∣=86,86 能被 1 整除。
-
第二次操作(x=2):我们可以连接顶点 2 和 1,因为 ∣a2−a1∣=∣7−99∣=92,92 能被 2 整除。
-
第三次操作(x=3):我们可以连接顶点 3 和 2,因为 ∣a3−a2∣=∣1−7∣=6,6 能被 3 整除。
从图中可以看出,最终得到了一个连通图。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?