wa了很多次,很悲剧,传送门有几个需要注意的细节,看remap函数,对这些情况的处理。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
p.x=p.y=p.h=p.step=0;
visit[0][0][0]=1;
Q.push(p);
while(!Q.empty())
{
p=Q.front();
Q.pop();
if(maze[p.h][p.x][p.y]=='#'){ //传送
if(!visit[!p.h][p.x][p.y]){
if(maze[!p.h][p.x][p.y]=='P'){
if(p.step<=t){
flag=1;
return ;
}
return ;
}
visit[!p.h][p.x][p.y]=1;
p.h=!p.h;
Q.push(p);
}
continue;
}
for(int i=0;i<4;i++)
{
q.x=p.x+dir[i][0];
q.y=p.y+dir[i][