点赞(0)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 8 条评论

自由无畏 1年前 回复TA
@东星耀阳 偏移的顺序是 D L R U
綮世 2年前 回复TA
该死的学霸呜呜
东星耀阳 2年前 回复TA
请问字母序怎么处理的
JakeLin 4年前 回复TA
@纯洁的宇仔 @pureayu sorry~这代码贴这乱成一片了
纯洁的宇仔 4年前 回复TA
@纯洁的宇仔 请问我这段代码为啥拼接不了,能输出数字,但字符串拼接不成
纯洁的宇仔 4年前 回复TA
@纯洁的宇仔 #include <iostream>  #include <queue> #include <cstring> #include <string>  using namespace std; char maze[505][505]; bool vis[505][505]; struct node{  int x, y, d;  string s;  node(int xx, int yy, int dd){   x = xx;   y = yy;   d = dd;  } }; string d[4] = {"D","L","R","U"}; int dir[4][2] = {{1,0},{0,-1},{0,1},{-1,0}}; int n, m; int bfs(int x, int y){  queue<node> s;  s.push(node(x, y, 0));  vis[x][y] = true;  while(!s.empty()){   node now = s.front();   s.pop();   if(now.x == n && now.y == m){    cout << now.d << endl << now.s << endl;    return true;   }   for(int i = 0; i < 4; i ++){    int tx = now.x + dir[i][0];    int ty = now.y + dir[i][1];    if(tx >= 1 && tx <= n && ty >= 1 && ty <= m && !vis[tx][ty] && maze[tx][ty] != &#039;1&#039;){     now.s += d[i];     s.push(node(tx, ty, now.d + 1));     vis[tx][ty] = true;    }   }  } } int main(){  cin >> n >> m;  for(int i = 1; i <= n; i ++){   for(int j = 1; j <= m; j ++){    cin >> maze[i][j];   }  }   bfs(1, 1);  return 0; }
JakeLin 4年前 回复TA
@纯洁的宇仔 谢谢~加油!
纯洁的宇仔 4年前 回复TA
赞!