[ ext{题目大意}
]
(quad)一个 (2) 行 (n) 列的网格图,起点在 ((1,1)),终点在 ((2,n)),标记为 (0) 的点可以走,不能走到标记为 (1) 的点,保证起点和终点可以走,一个点可以到达周围八个点(上下左右 (+) 沿斜线走),问是否可以从起点走到终点。
[ ext{思路}
]
(quad)因为一个点可以到达周围八个点,显然只有同一列的两个方格都被标记了的时候就无法到达终点,其他情况就可以到达终点。
(quad)注意:多组数据。
const int N=105;
int T,n;
char s[N];
bool b[2][N];
signed main()
{
T=read();
while(T--){
n=read();int flag=1;
scanf("%s",s+1);
for(re i=1;i<=n;i++)b[0][i]=(s[i]=='1');
scanf("%s",s+1);
for(re i=1;i<=n;i++)b[1][i]=(s[i]=='1');
for(re i=1;i<=n;i++)
if(b[1][i]&&b[0][i]){flag=0;break;}//同一列的两个方格都被标记了
puts(flag?"YES":"NO");
}
return 0;
}