文章

2

粉丝

0

获赞

4

访问

182

头像
机器人走迷宫 题解:dfs
P1675 中南大学/中山大学机试题
发布于2026年2月2日 13:35
阅读数 108

采用dfs的题解,用bool型标记是否可以转向

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;


struct point{
    int x,y;
    point(int _x=0,int _y=0):x(_x),y(_y){}
};


int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};//方向数组,和0123方向对应


map<char,int> dmap={{'U',0},{'R',1},{'D',2},{'L',3}};//从字符映射到数字
char rdmap[]={'U','R','D','L'};//从数字映射到字符


int ans=1;//全局计数器,出发点也算一格


void dfs(vector<vector<char>>& grid,point s,bool turn){
    //grid为整个迷宫网格,s代表起点,turn表示是否可以旋转,true表示可以
    int H=grid.size(),W=grid[0].size();
    int di=dmap[grid[s.x][s.y]];//根据起点标记获取di的值,di取值0,1,2,3,需要模四运算
    int nx=s.x+dx[di];
    int ny=s.y+dy[di];//拉取下一个位置(nx,ny)
    if(0<=nx&&nx<H&&0<=ny&&ny<W&&...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发