乌龟的坚韧:连续取模问题(Turtle Tenacity: Continual Mods)
https://codeforces.com/problemset/problem/1933/D
乌龟的坚韧:连续取模问题(Turtle Tenacity: Continual Mods)
题目描述
给定一个整数数组 \(a_1, a_2, \dots, a_n\),判断是否存在一种重新排列,得到数组 \(b_1, b_2, \dots, b_n\),使得:
b_1 % b_2 % b_3 % ... % b_n ≠ 0 这里的 % 表示 取模运算(modulo),即:
x % y 表示 x 除以 y 的余数 而且题目规定:取模从左到右依次进行,即:
x % y % z = (x % y) % z
例如: 2024 % 1000 % 8 = (2024 % 1000) % 8 = 24 % 8 = 0
输入格式
第一行是一个整数 \(t\)(\(1 \le t \le 10^4\)),表示测试用例个数。
接下来每个测试用例包括两行:
第一行:一个整数 \(n\)(\(2 \le n \le 10^5\))—— 数组的长度
第二行:\(n\) 个整数 \(a_1, a_2, \dots, a_n\)(\(1 \le a_i \le 10^9\))—— 原始数组
保证所有测试用例中 \(n\) 的总和不超过 \(2 \times 10^5\)。
输出格式
对于每个测试用例,输出一行 "YES" 或 "NO":
"YES" 表示存在一种排列,使得连续取模后结果不为 0;
"NO" 表示任何排列都会导致结果为 0。
示例输入
8
6
1 2 3 4 5 6
5
3 3 3 3 3
3
2 2 3
5
1 1 2 3 7
3
1 2 2
3
1 1 2
6
5 2 10 10 10 2
4
3 6 9 3
示例输出
YES
NO
YES
NO
YES
NO
YES
NO
说明
示例 1:原数组不变,\(1 % 2 % 3 % 4 % 5 % 6 = 1\),结果不为 0,输出 YES。
示例 2:所有元素都为 3,任何排列都会得到 \(3 % 3 % 3 % 3 % 3 = 0\),输出 NO。
示例 3:排列为 \([3, 2, 2]\),结果 \(3 % 2 = 1\),\(1 % 2 = 1\),最终结果不为 0,输出 YES。
Comments