#include<bits/stdc++.h>
using namespace std;
struct Poi{
int x,y,z;
};
int n,m,t,vis[3][103][103],dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
string mix[3][103];
queue<Poi>q;
bool bfs(){
int ans=0x3f3f3f3f3f;
memset(vis,0x3f3f3f3f3f,sizeof(vis));
Poi a,b;
a.x=a.y=a.z=vis[0][0][0]=0,q.push(a);
while(!q.empty()){
a=q.front(),q.pop();
if(mix[a.z][a.x][a.y]=='P')ans=min(ans,vis[a.z][a.x][a.y]);
if(mix[a.z][a.x][a.y]=='#'){
if(mix[(a.z+1)%2][a.x][a.y]=='*'||mix[(a.z+1)%2][a.x][a.y]=='#')
vis[(a.z+1)%2][a.x][a.y]=vis[a.z][a.x][a.y],b=a,b.z=(a.z+1)%2,q.push(b);
continue;
}
for(int i=0;i<4;++i){
int x=a.x+dx[i],y=a.y+dy[i],z=a.z;
if(x>=0&&x<n&&y>=0&&y<n&&mix[z][x][y]!='*'&&vis[z][x][y]>1+vis[z][a.x][a.y])
vis[z][x][y]=1+vis[z][a.x][a.y],b.x=x,b.y=y,b.z=z,q.push(b);
}
}
return (ans<=t);
}
int main(){
int tid;
cin>>tid;
while(tid--){
cin>>n>>m>>t;
for(int i=0;i<2;++i)
for(int j=0;j<n;++j)
cin>>mix[i][j];
puts(bfs()?"YES":"NO");
}
}
[Warning] overflow in implicit constant conversion [-Woverflow]
有这么一种xx错误,quq求助