CF2254C1 Marenol (easy version)

题目描述

这是该问题的简单版本。在本版本中,你只需要判断字符串 $a$ 是否能够被转换为字符串 $b$。 Yousef 给了你两个等长的二进制字符串 $a$ 和 $b$,长度均为 $n$。 你可以对 $a$ 进行以下任意次数的操作: - 选择 $a$ 中的某个子串 $^{\ast}$,如果该子串为 $\texttt{001}$,则可以将其替换为 $\texttt{100}$,反之亦然(即 $\texttt{001} \rightarrow \texttt{100}$ 或 $\texttt{100} \rightarrow \texttt{001}$)。 - 选择 $a$ 中的某个子串,如果该子串为 $\texttt{110}$,则可以将其替换为 $\texttt{011}$,反之亦然(即 $\texttt{011} \rightarrow \texttt{110}$ 或 $\texttt{110} \rightarrow \texttt{011}$)。 你的任务是判断,是否可以通过有限次上述操作将字符串 $a$ 转换为字符串 $b$。 $^{\ast}$ 若字符串 $a$ 可以通过从字符串 $b$ 的开头删除若干(可能为 0 或全部)字符,以及从结尾删除若干(可能为 0 或全部)字符后得到,则称 $a$ 是 $b$ 的一个子串。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的组数。 每组测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示每个字符串的长度。 第二行包含一个长度为 $n$ 的二进制字符串 $a$,仅由字符 $\texttt{0}$ 和/或 $\texttt{1}$ 组成。 第三行包含一个长度为 $n$ 的二进制字符串 $b$,仅由字符 $\texttt{0}$ 和/或 $\texttt{1}$ 组成。 保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,如果可以通过有限次操作将字符串 $a$ 转换为字符串 $b$,则输出“YES”;否则,输出“NO”。 你可以用任意大小写输出答案,例如 "YES"、"Yes"、"yes"、"yES" 都会被判为肯定回答。

说明/提示

第一个测试用例中,$a=b$,因此答案是 YES。 第二个测试用例中,不能进行任何操作。由于 $a \neq b$,所以答案是 NO。 第三个测试用例中,可以选择 $a[1, 3]=\texttt{001}$,并将其替换为 $\texttt{100}$,此时 $a=b$,因此答案是 YES。 第七个测试用例,可以按如下顺序操作: - $\texttt{1}$ ${\color{blue}{\texttt{100}}}$ $\texttt{00}$ $\rightarrow$ $\texttt{1}$ ${\color{blue}{\texttt{001}}}$ $\texttt{00}$ - $\texttt{100}$ ${\color{blue}{\texttt{100}}}$ $\rightarrow$ $\texttt{100}$ ${\color{blue}{\texttt{001}}}$ - ${\color{blue}{\texttt{100}}}$ $\texttt{001}$ $\rightarrow$ ${\color{blue}{\texttt{001}}}$ $\texttt{001}$ - $\texttt{00}$ ${\color{blue}{\texttt{100}}}$ $\texttt{1}$ $\rightarrow$ $\texttt{00}$ ${\color{blue}{\texttt{001}}}$ $\texttt{1}$ 因此,答案是 YES。 由 ChatGPT 5 翻译