首页 > 试题广场 >

简单变换题

[编程题]简单变换题
\hspace{15pt}给出两个长度为 n,仅由字符 \texttt{`0'}\texttt{`1'} 组成的 01 字符串 s,t
\hspace{15pt}定义一次变换为选择 s 中两个相邻的位置 x,x+1 \left(1\le x< n\right),将 s_xs_{x+1} 同时变为 \left(s_x+s_{x+1}\right)\bmod 2
\hspace{15pt}请问能否经过若干次变换(可以不操作)将 s 变为 t,可以输出 \texttt{YES},不能输出 \texttt{NO}

【名词解释】
\hspace{15pt}\bmod:代表取模运算。例如,5 除以 3 的余数为 2,因此式子 5 \bmod 3 的值为 2

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1\le n\le 10^7\right),表示字符串长度。
\hspace{15pt}第二行输入一个长度为 n 的 01 字符串,表示 s
\hspace{15pt}第三行输入一个长度为 n 的 01 字符串,表示 t


输出描述:
\hspace{15pt}如果可以将 s 变为 t,则输出 \texttt{YES},否则输出 \texttt{NO}
示例1

输入

2
01
00

输出

YES
示例2

输入

4
1110
0001

输出

YES
示例3

输入

2
11
10

输出

NO

备注:

头像 ForgotMe
发表于 2026-03-06 22:24:38
A 注意到当 不是全 串时,基本可以变成任意一个 串,具体的思路就是先把 变为全 串(),然后再变成想要的串。但是会有反例,注意到至少操作了一次的串至少存在一个 ,满足 这两个位置上的值一样,所以说一定变不了 或者 这种串,且反例只有这个。 B 发现其实就是要求 。 类似于杨辉三角 展开全文