CF1881D.Divide and Equalize
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a consisting of n positive integers. You can perform the following operation on it:
- Choose a pair of elements ai and aj (1≤i,j≤n and i=j);
- Choose one of the divisors of the integer ai, i.e., an integer x such that aimodx=0;
- Replace ai with xai and aj with aj⋅x.
Determine whether it is possible to make all elements in the array the same by applying the operation a certain number of times (possibly zero).
For example, let's consider the array a = [100,2,50,10,1] with 5 elements. Perform two operations on it:
- Choose a3=50 and a2=2, x=5. Replace a3 with xa3=550=10, and a2 with a2⋅x=2⋅5=10. The resulting array is a = [100,10,10,10,1];
- Choose a1=100 and a5=1, x=10. Replace a1 with xa1=10100=10, and a5 with a5⋅x=1⋅10=10. The resulting array is a = [10,10,10,10,10].
After performing these operations, all elements in the array a become equal to 10.
给你一个由 n 个正整数组成的数组 a。你可以对它执行以下操作:
- 选择一对元素 ai 和 aj(其中 1≤i,j≤n 且 i=j);
- 选择整数 ai 的一个约数,即选择一个整数 x,使得 aimodx=0;
- 将 ai 替换为 xai,并将 aj 替换为 aj⋅x。
判断是否可以通过若干次(可能为零次)执行该操作,使得数组中所有元素都相等。
例如,考虑包含 5 个元素的数组 a=[100,2,50,10,1]。对其执行两次操作:
- 选择 a3=50 和 a2=2,取 x=5。将 a3 替换为 xa3=550=10,将 a2 替换为 a2⋅x=2⋅5=10。得到的新数组为 a=[100,10,10,10,1];
- 选择 a1=100 和 a5=1,取 x=10。将 a1 替换为 xa1=10100=10,将 a5 替换为 a5⋅x=1⋅10=10。得到的新数组为 a=[10,10,10,10,10]。
执行完这些操作后,数组 a 中的所有元素均变为 10。
输入格式
The first line of the input contains a single integer t (1≤t≤2000) — the number of test cases.
Then follows the description of each test case.
The first line of each test case contains a single integer n (1≤n≤104) — the number of elements in the array a.
The second line of each test case contains exactly n integers ai (1≤ai≤106) — the elements of the array a.
It is guaranteed that the sum of n over all test cases does not exceed 104.
输入的第一行包含一个整数 t(1≤t≤2000),表示测试用例的数量。
随后是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤104),表示数组 a 中的元素个数。
每个测试用例的第二行包含恰好 n 个整数 ai(1≤ai≤106),表示数组 a 的元素。
保证所有测试用例的 n 之和不超过 104。
输出格式
For each test case, output a single line:
- "YES" if it is possible to make all elements in the array equal by applying the operation a certain (possibly zero) number of times;
- "NO" otherwise.
You can output the answer in any case (for example, the strings "yEs", "yes", "Yes", and "YES" will all be recognized as a positive answer).
对于每个测试用例,输出一行:
- 如果可以通过应用该操作若干次(可能为零次)使得数组中所有元素相等,则输出
"YES"; - 否则输出
"NO"。
你可以以任意大小写形式输出答案(例如,字符串 "yEs"、"yes"、"Yes" 和 "YES" 均会被识别为肯定回答)。
输入输出样例
输入#1
7 5 100 2 50 10 1 3 1 1 1 4 8 2 4 2 4 30 50 27 20 2 75 40 2 4 4 3 2 3 1
输出#1
YES YES NO YES NO YES NO
说明/提示
The first test case is explained in the problem statement.
第一个测试用例在题目描述中已作解释。
输入解题思路,AI测评打分。不知道怎么写?