0
0
已采纳
陆麟瑞
资深天翼
资深天翼
深度优先搜索+记忆化搜索
bool search(int x,int y) { if(f[x][y]) return false; if(x==x1&&y==y1) { if(a[x][y]=='s')return true; return false; } if(x<1||x>n||y<1||y>n) return false; if(b[x][y]) return false; //cout<<b[x][y]<<' '<<x<<' '<<y<<endl; if(a[x][y]=='d') return false; b[x][y]=true; if(search(x+1,y)) return true; if(search(x-1,y)) return true; if(search(x,y+1)) return true; if(search(x,y-1)) return true; b[x][y]=false; f[x][y]=true; return false; }
0
程天瑞
资深守护
资深守护
flag[l][r]=true;
for (int i=0;i<4;i++)
{
int nextl=l+dir[i][0];
int nextr=r+dir[i][1];
if (nextl>=1 && nextl<=n && nextr>=1 && nextr<=n
&& !flag[nextl][nextr] && map[nextl][nextr]=='s')
search(nextl,nextr);
}
这题可以用搜索回溯
因为题目不要求输出所有路径,所以只要判断能不能到就可以了。只要搜索,不要回溯,否则超时
0
0
0