#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const ll mod=1e9+7;
const int INF=0x3f3f3f3f;
const int N = 1e5+10;
#define ios \
ios::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
int dp[2][4*N];
void solve()
{
int n; cin >> n;
string s[2];
cin >> s[0] >> s[1];
int cnt = count(s[0].begin(), s[0].end(), 'B') +
count(s[1].begin(), s[1].end(), 'B');
memset(dp,0,sizeof(dp));
for(int j = 0; j < n; j++)
{
for(int i = 0; i < 2; i++)
{
if(s[i][j] == 'W') continue;
if(j == 0) dp[i][j] = 1;
else if(s[i][j-1] == 'B') dp[i][j] = dp[i][j-1] + 1;
}
if(s[0][j] == 'B' && s[1][j] == 'B')
{
int tmp = dp[0][j];
dp[0][j] = max(dp[0][j], dp[1][j] + 1);
dp[1][j] = max(dp[1][j], tmp + 1);
}
if(dp[0][j] == cnt || dp[1][j] == cnt)
{
cout << "YES\n";
return;
}
}
cout << "NO\n";
}
int main()
{
int t;
cin>>t;
while(t--)
{
solve();
}
}
C. Hamiltonian Wall(dp)
最新推荐文章于 2024-06-15 23:36:03 发布