这道题还是挺水的,广搜模板题,注意一下细节就是了。


:码代上上代码:

#include <bits/stdc++.h>
using namespace std;
int n , m , sx , sy , ans = -1;
int dx[] = {1 , 0 , -1 , 0} , dy[] = {0 , 1 , 0 , -1}; //方向
bool vis[2010][2010];
char st[2010][2010];
struct node{
int x , y , s; //坐标和走到当前点的时间
};
queue<node> q;
void bfs(){
node now;
now.x = sx , now.y = sy , now.s = 0;
q.push(now);
vis[sx][sy] = 1;
while(!q.empty()){
now = q.front();
if(st[now.x][now.y] == 'd'){ //因为是广搜,所以第一个就是最优解
ans = now.s;
break;
}
q.pop();
for(int v = 0; v <= 3; v++){
node nxt;
nxt.x = now.x + dx[v] , nxt.y = now.y + dy[v] , nxt.s = now.s + 1;
if(!vis[nxt.x][nxt.y] && nxt.x <= n && nxt.x >= 1 && nxt.y >= 1 && nxt.y <= m && st[nxt.x][nxt.y] != '#'){
vis[nxt.x][nxt.y] = 1;
q.push(nxt);
}
}
}
}
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++){
cin >> st[i][j];
if(st[i][j] == 'm') sx = i , sy = j;
}
bfs();
if(ans == -1) cout << "No Way!";
else cout << ans;
return 0;
}

最新文章

  1. [Unity3D]巧妙利用父级子级实现Camera场景平面漫游
  2. JavaScript 开发技巧 || 返回有效值
  3. memcache命中统计
  4. Windows下MongoDB安装与设置
  5. MySQL表的创建和表中数据操作
  6. 开源sip server &amp; sip client 和开发库 一览
  7. postgresql----serial类型和序列
  8. 酷炫的方块状散点3D
  9. zabbix借助onealert实现微信报警
  10. AngularJS学习之旅—AngularJS 表达式(二)
  11. c++入门之 再话类
  12. php-beanstalkd消息队列类分享
  13. Alpha冲刺! Day12 - 砍柴
  14. Kivy crash 中文教程 实例入门 1. 第1个应用 Kivy App (Making a simple App)
  15. Coursera-AndrewNg(吴恩达)机器学习笔记——第四周编程作业(多分类与神经网络)
  16. (转)最近一个项目中关于NGUI部分的总结(深度和drawCall)
  17. 在 php 中使用 strace、gdb、tcpdump 调试工具
  18. JNI_Z_01_获取Clazz
  19. mysql导入大量数据时报MySQL server has gone away错误的解决办法
  20. vs2017中的scanf_s

热门文章

  1. Java实现 蓝桥杯 算法提高 分解质因数(暴力)
  2. Java实现 LeetCode 725 分隔链表(暴力)
  3. Java实现 LeetCode 374 猜数字大小
  4. Java实现蓝桥杯VIP算法训练 相邻字母
  5. 第五届蓝桥杯JavaA组国(决)赛真题
  6. java实现第六届蓝桥杯奇妙的数字
  7. java实现第四届蓝桥杯世纪末星期
  8. 还在用SimpleDateFormat格式化时间?小心经理锤你
  9. akka-typed(6) - cluster:group router, cluster-load-balancing
  10. Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!