CF1977C.Nikita and LCM

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Nikita 是一名热衷于数论和算法的学生。他遇到了一个与整数数组相关的有趣问题。

假设 Nikita 有一个长度为 nn 的整数数组 aa。如果某个子序列 †^\dagger 的最小公倍数(LCM)不在数组 aa 中,则称该子序列为特殊子序列。空子序列的 LCM 定义为 00。

Nikita 想知道:aa 的最长特殊子序列的长度是多少?请你帮他回答这个问题!

†^\dagger 如果一个序列 bb 可以通过从 aa 中删除若干(可以为零或全部)元素且不改变剩余元素的顺序得到,则称 bb 是 aa 的一个子序列。例如,[5,2,3][5,2,3] 是 [1,5,7,8,2,4,3][1,5,7,8,2,4,3] 的一个子序列。

输入格式

每个测试点包含多组测试数据。输入的第一行包含一个整数 tt(1≤t≤20001 \le t \le 2000),表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含一个整数 nn(1≤n≤20001 \le n \le 2000),表示数组 aa 的长度。

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

保证所有测试用例中 nn 的总和不超过 20002000。

输出格式

对于每组测试用例,输出一个整数,表示 aa 的最长特殊子序列的长度。

输入输出样例

  • 输入#1

    6
    5
    1 2 4 8 16
    6
    3 2 10 20 60 1
    7
    2 3 4 6 12 100003 1200036
    9
    2 42 7 3 6 7 7 1 6
    8
    4 99 57 179 10203 2 11 40812
    1
    1

    输出#1

    0
    4
    4
    5
    8
    0

说明/提示

在第一个测试用例中,任何非空子序列的 LCM 都包含在 aa 中,因此答案为 00。

在第二个测试用例中,可以选择子序列 [3,2,10,1][3, 2, 10, 1],其 LCM 为 3030,不在 aa 中。

在第三个测试用例中,可以选择子序列 [2,3,6,100 003][2, 3, 6, 100\,003],其 LCM 为 600 018600\,018,不在 aa 中。

由 ChatGPT 4.1 翻译

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

首页