CF1977C.Nikita and LCM
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Nikita 是一名热衷于数论和算法的学生。他遇到了一个与整数数组相关的有趣问题。
假设 Nikita 有一个长度为 n 的整数数组 a。如果某个子序列 † 的最小公倍数(LCM)不在数组 a 中,则称该子序列为特殊子序列。空子序列的 LCM 定义为 0。
Nikita 想知道:a 的最长特殊子序列的长度是多少?请你帮他回答这个问题!
† 如果一个序列 b 可以通过从 a 中删除若干(可以为零或全部)元素且不改变剩余元素的顺序得到,则称 b 是 a 的一个子序列。例如,[5,2,3] 是 [1,5,7,8,2,4,3] 的一个子序列。
输入格式
每个测试点包含多组测试数据。输入的第一行包含一个整数 t(1≤t≤2000),表示测试用例的数量。接下来是每组测试用例的描述。
每组测试用例的第一行包含一个整数 n(1≤n≤2000),表示数组 a 的长度。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示数组 a 的元素。
保证所有测试用例中 n 的总和不超过 2000。
输出格式
对于每组测试用例,输出一个整数,表示 a 的最长特殊子序列的长度。
输入输出样例
输入#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 都包含在 a 中,因此答案为 0。
在第二个测试用例中,可以选择子序列 [3,2,10,1],其 LCM 为 30,不在 a 中。
在第三个测试用例中,可以选择子序列 [2,3,6,100003],其 LCM 为 600018,不在 a 中。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?