题解:CF2254C1 Marenol (easy version)
chenqishuo · · 题解
题意简述
给定两个长度均为
- 将子串
\texttt{001} 与\texttt{100} 互相替换; - 将子串
\texttt{011} 与\texttt{110} 互相替换。
判断能否将
思路
观察两种操作:
因此,每次操作都不改变每个
反过来,只要两个字符串在奇数位和偶数位上的
所以我们只需要分别统计 YES,否则输出 NO。
代码
#include <iostream>
#include <cstring>
using namespace std;
int T, n;
string s, t;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> T;
while(T --)
{
cin >> n >> s >> t;
int a1 = 0, a2 = 0, b1 = 0, b2 = 0;
for(int i = 0;i < n; ++ i)
{
if(s[i] == '1')
{
if(i & 1) a1 ++;
else a2 ++;
}
if(t[i] == '1')
{
if(i & 1) b1 ++;
else b2 ++;
}
}
if(a1 == b1 && a2 == b2)
cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
原题通过记录