CF1714E Add Modulo 10
题目描述
给定一个包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ 的数组。
你可以对数组执行如下操作任意次:
- 选择一个下标 $i$($1 \le i \le n$),将 $a_i$ 替换为 $a_i + (a_i \bmod 10)$,其中 $a_i \bmod 10$ 表示 $a_i$ 除以 $10$ 的余数。
对于同一个下标(即同一个 $i$),该操作可以多次执行。每次操作时,使用当前 $a_i$ 的值。例如,如果 $a_i=47$,第一次操作后得到 $a_i=47+7=54$,第二次操作后得到 $a_i=54+4=58$。
请判断是否可以通过若干次(可以为零次)操作,使得数组中所有元素都相等。
例如,给定数组 $[6, 11]$:
- 首先对第一个元素执行操作,将 $a_1=6$ 替换为 $a_1 + (a_1 \bmod 10) = 6 + 6 = 12$,得到数组 $[12, 11]$。
- 然后对第二个元素执行操作,将 $a_2=11$ 替换为 $a_2 + (a_2 \bmod 10) = 11 + 1 = 12$,得到数组 $[12, 12]$。
因此,通过 $2$ 次操作,可以使数组所有元素相等。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \times 10^5$),表示数组的大小。
每个测试用例的第二行包含 $n$ 个整数 $a_i$($0 \le a_i \le 10^9$),表示数组的元素。
保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。
输出格式
对于每个测试用例,输出一行:
- 如果可以使所有数组元素相等,输出 YES;
- 否则输出 NO。
你可以用任意大小写形式输出 YES 和 NO(例如 yEs、yes、Yes 和 YES 都会被识别为肯定答案)。
说明/提示
第一个测试用例已在上文中说明。
第二个测试用例,不可能使所有数组元素相等。
第三个测试用例,需要对所有等于 $5$ 的元素各执行一次操作。
第四个测试用例,需要对所有元素不断执行操作,直到它们都变为 $8$。
第五个测试用例,不可能使所有数组元素相等。
第六个测试用例,需要对所有元素不断执行操作,直到它们都变为 $102$。
由 ChatGPT 4.1 翻译