CF2134B.Add 0 or K

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个包含 nn 个正整数的数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和一个正整数 kk。

在一次操作中,你可以对每个 aia_i 加上 00 或 kk,即选择另一个数组 b1,b2,…,bnb_1, b_2, \ldots, b_n,其中每个 bib_i 要么是 00,要么是 kk,然后将 aia_i 更新为 ai+bia_i + b_i,对于所有 1≤i≤n1 \le i \le n。注意,对于数组 bb 的每一个元素,你可以选择不同的值。

你的任务是在不超过 kk 次操作内,使得 gcd⁡(a1,a2,…,an)>1\gcd(a_1, a_2, \ldots, a_n) > 1 ∗^{\text{∗}}。可以证明,永远存在合法解。

请输出经过操作后的最终数组。你不需要输出具体的操作过程。

∗^{\text{∗}} gcd⁡(a1,a2,…,an)\gcd(a_1, a_2, \ldots, a_n) 表示 a1,a2,…,ana_1, a_2, \ldots, a_n 的最大公约数(greatest common divisor, GCD)。

输入格式

本题包含多组测试数据。第一行为测试组数 tt(1≤t≤10001 \le t \le 1000)。每组测试数据描述如下。

每组测试数据的第一行包含两个整数 nn 和 kk(1≤n≤1051 \le n \le 10^5,1≤k≤1091 \leq k \leq 10^9),分别表示数组长度和给定常数。

第二行为 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(1≤ai≤1091 \le a_i \le 10^9),表示数组 aa 的各个元素。

保证所有测试数据中 nn 之和不超过 10510^5。

输出格式

对于每组测试数据,输出一行 nn 个整数,表示经过操作后的最终数组。输出的各元素要求都在 11 到 109+k210^9 + k^2 之间。

如果有多种合法输出,只需输出其中一种即可。

注意,你无需最小化操作次数。

输入输出样例

  • 输入#1

    8
    3 3
    2 7 1
    4 5
    2 9 16 14
    4 1
    1 2 3 4
    5 2
    5 6 7 8 9
    2 10
    7 9
    1 1000000000
    1
    1 371
    1000000000
    3 6
    1 3 5

    输出#1

    8 10 10
    7 14 21 14
    2 2 4 4
    9 6 9 12 9
    77 99
    1000000000000000001
    1000000000
    25 15 5

说明/提示

在第一个测试用例中,输出 [8,10,10][8, 10, 10] 是合法的,因为 gcd⁡(8,10,10)=2>1\gcd(8, 10, 10) = 2 > 1,并且可以通过不超过 33 次操作将 [2,7,1][2, 7, 1] 变为 [8,10,10][8, 10, 10]。一种可能的操作如下表:

操作次数 bb 操作后的 aa
11 [3,0,3][3, 0, 3] [5,7,4][5, 7, 4]
22 [0,0,3][0, 0, 3] [5,7,7][5, 7, 7]
33 [3,3,3][3, 3, 3] [8,10,10][8, 10, 10]

其他诸如 [2,10,4][2, 10, 4]、[8,16,4][8, 16, 4]、[5,10,10][5, 10, 10] 也是合法输出。

在第二个测试用例中,输出 [7,14,21,14][7, 14, 21, 14] 是合法的,因为:

  • gcd⁡(7,14,21,14)=7>1\gcd(7, 14, 21, 14) = 7 > 1。
  • 从 [2,9,16,14][2, 9, 16, 14] 出发,选择 b=[5,5,5,0]b = [5, 5, 5, 0],即可到达 [7,14,21,14][7, 14, 21, 14],且操作次数不超过 55 次。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页