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