CF2097D.Homework

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有些老师在"天狼星"教育中心工作的同时还在大学学习。这种情况下,出差并不能免除他们完成作业的义务,因此他们直接在飞机上做作业。Artem 就是这样一位老师,他在大学被布置了以下作业。

对于任意长度为偶数 mm 的字符串 aa,他可以执行以下操作。Artem 将字符串 aa 分成两个长度相等的部分 xx 和 yy,然后执行以下三种操作之一:

  • 对于每个 i∈{1,2,…,m2}i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\},令 xi=(xi+yi) mod 2x_i = (x_i + y_i) \bmod 2;
  • 对于每个 i∈{1,2,…,m2}i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\},令 yi=(xi+yi) mod 2y_i = (x_i + y_i) \bmod 2;
  • 对字符串 xx 和 yy 分别执行任意次数的上述操作(递归应用),注意此时 xx 和 yy 的长度必须为偶数。

操作完成后,字符串 aa 将被替换为按原顺序连接的 xx 和 yy。不幸的是,Artem 在飞机上睡着了,所以你需要替他完成作业。Artem 有两个长度为 nn 的二进制字符串 ss 和 tt,每个字符串都由 nn 个字符 0 或 1 组成。请判断是否可以通过任意次数的操作使字符串 ss 等于字符串 tt。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤1051 \le t \le 10^5)。接下来是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤1061 \le n \le 10^6)——字符串 ss 和 tt 的长度。

每个测试用例的第二行包含长度为 nn 的字符串 ss,仅由字符 0 和 1 组成。

每个测试用例的第三行包含长度为 nn 的字符串 tt,仅由字符 0 和 1 组成。

保证所有测试用例的 nn 之和不超过 10610^6。

输出格式

对于每个测试用例,如果可以使字符串 ss 等于字符串 tt,则输出 "Yes"(不带引号),否则输出 "No"。

答案大小写不敏感。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被接受为肯定回答。

输入输出样例

  • 输入#1

    3
    8
    00001001
    10101001
    8
    00000000
    00001001
    6
    010110
    100010

    输出#1

    Yes
    No
    Yes

说明/提示

在第一个测试用例中,字符串 00001001 可以通过两次操作转换为 10101001。操作序列如下图所示:

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

翻译由 DeepSeek V3 完成

输入解题思路,AI测评打分。不知道怎么写?

首页