CF1980D.GCD-sequence

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

最大公约数(GCD)是两个整数 xx 和 yy 可以整除的最大整数 zz。例如,GCD(36,48)=12\text{GCD}(36, 48) = 12,GCD(5,10)=5\text{GCD}(5, 10) = 5,以及 GCD(7,11)=1\text{GCD}(7,11) = 1。

Kristina 有一个由正整数组成的数组 aa,其中有 nn 个数。她想要计算相邻两个数的最大公约数,得到一个新数组 bb,称为最大公约数序列。

因此,最大公约数序列的元素 bb 将使用公式 bi=GCD(ai,ai+1)b_i = \text{GCD}(a_i, a_{i + 1}) 计算得到 1≤i≤n−11 \le i \le n - 1。

确定是否可以从数组 aa 中移除恰好一个数字,使得最大公约数序列 bb 是非递减的(即,bi≤bi+1b_i \le b_{i+1} 始终为真)。

例如,如果 Khristina 有一个数组 a=[20,6,12,3,48,36]a = [20, 6, 12, 3, 48, 36]。如果她从中移除 a4=3a_4 = 3 并计算 bb 的最大公约数序列,她会得到:

  • b1=GCD(20,6)=2b_1 = \text{GCD}(20, 6) = 2
  • b2=GCD(6,12)=6b_2 = \text{GCD}(6, 12) = 6
  • b3=GCD(12,48)=12b_3 = \text{GCD}(12, 48) = 12
  • b4=GCD(48,36)=12b_4 = \text{GCD}(48, 36) = 12

结果得到的最大公约数序列 b=[2,6,12,12]b = [2,6,12,12] 是非递减的,因为 b1≤b2≤b3≤b4b_1 \le b_2 \le b_3 \le b_4。

输入格式

输入数据的第一行包含一个数字 tt(1≤t≤1041 \le t \le 10^4)— 测试中的测试用例数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(3≤n≤2⋅1053 \le n \le 2 \cdot 10^5)— 数组 aa 中元素的数量。

每个测试用例的第二行包含恰好 nn 个整数 aia_i(1≤ai≤1091 \le a_i \le 10^9)— 数组 aa 的元素。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一行:

  • 如果可以移除数组 aa 中的恰好一个数字,使得 bb 的最大公约数序列是非递减的,则输出 YES;
    否则输出 NO。

你可以以任何形式输出答案(例如,字符串 yEs,yes,Yes,和 YES 都将被视为肯定答案)。

输入输出样例

  • 输入#1

    12
    6
    20 6 12 3 48 36
    4
    12 6 3 4
    3
    10 12 3
    5
    32 16 8 4 2
    5
    100 50 2 10 20
    4
    2 4 8 1
    10
    7 4 6 2 4 5 1 4 2 8
    7
    5 9 6 8 5 9 2
    6
    11 14 8 12 9 3
    9
    5 7 3 10 6 3 12 6 3
    3
    4 2 4
    8
    1 6 11 12 6 12 3 6

    输出#1

    YES
    NO
    YES
    NO
    YES
    YES
    NO
    YES
    YES
    YES
    YES
    YES

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

首页