CF2097D Homework
题目描述
有些老师在"天狼星"教育中心工作的同时还在大学学习。这种情况下,出差并不能免除他们完成作业的义务,因此他们直接在飞机上做作业。Artem 就是这样一位老师,他在大学被布置了以下作业。
对于任意长度为偶数 $m$ 的字符串 $a$,他可以执行以下操作。Artem 将字符串 $a$ 分成两个长度相等的部分 $x$ 和 $y$,然后执行以下三种操作之一:
- 对于每个 $i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\}$,令 $x_i = (x_i + y_i) \bmod 2$;
- 对于每个 $i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\}$,令 $y_i = (x_i + y_i) \bmod 2$;
- 对字符串 $x$ 和 $y$ 分别执行任意次数的上述操作(递归应用),注意此时 $x$ 和 $y$ 的长度必须为偶数。
操作完成后,字符串 $a$ 将被替换为按原顺序连接的 $x$ 和 $y$。不幸的是,Artem 在飞机上睡着了,所以你需要替他完成作业。Artem 有两个长度为 $n$ 的二进制字符串 $s$ 和 $t$,每个字符串都由 $n$ 个字符 0 或 1 组成。请判断是否可以通过任意次数的操作使字符串 $s$ 等于字符串 $t$。
输入格式
每个测试包含多个测试用例。第一行输入测试用例数量 $t$($1 \le t \le 10^5$)。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^6$)——字符串 $s$ 和 $t$ 的长度。
每个测试用例的第二行包含长度为 $n$ 的字符串 $s$,仅由字符 0 和 1 组成。
每个测试用例的第三行包含长度为 $n$ 的字符串 $t$,仅由字符 0 和 1 组成。
保证所有测试用例的 $n$ 之和不超过 $10^6$。
输出格式
对于每个测试用例,如果可以使字符串 $s$ 等于字符串 $t$,则输出 "Yes"(不带引号),否则输出 "No"。
答案大小写不敏感。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被接受为肯定回答。
说明/提示
在第一个测试用例中,字符串 00001001 可以通过两次操作转换为 10101001。操作序列如下图所示:

在第二个测试用例中,字符串 00000000 无法转换为除自身外的任何其他字符串,因为在任何操作中都无法产生非零元素。
翻译由 DeepSeek V3 完成