HDU/HDOJ 2102 A计划 广度优先搜索BFS (二)

2014-11-24 01:02:40 · 作者: · 浏览: 7
1];
q.h=p.h;
q.step=p.step+1;

if(isbond(q))continue; // 边界
if(maze[q.h][q.x][q.y]=='*')continue; //当前障碍
if(visit[q.h][q.x][q.y])continue; //访问
if(maze[q.h][q.x][q.y]=='P'){
if(q.step<=t){
flag=1;
return ;
}
return ;
}
visit[q.h][q.x][q.y]=1;
Q.push(q);
}
}
}
void remap()
{
for(int i=0;i {
for(int j=0;j {
if((maze[0][i][j]=='#'&&maze[1][i][j]=='#')||(maze[0][i][j]=='#'&&maze[1][i][j]=='*')||(maze[0][i][j]=='*'&&maze[1][i][j]=='#'))
maze[0][i][j]=maze[1][i][j]='*';
}
}
}
int main()
{
int c;
// ifstream fin;
// fin.open("aaa.txt");

cin>>c;
while(c--)
{
cin>>n>>m>>t;
for(int i=0;i for(int j=0;j cin>>maze[0][i][j];
}
for(int i=0;i for(int j=0;j cin>>maze[1][i][j];
}
flag=0;
memset(visit,0,sizeof(visit));
remap();
bfs();
if(flag)cout<<"YES"< else cout<<"NO"<
}
return 0;
}