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 翻译