题目传送门



题解

  • 直接BFS跑一遍即可
  • 水题

AC-Code

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e7 + 7;
char mp[55][55];
bool vis[55][55];
struct NODE {int x, y, val;NODE(int x, int y, int v) :x(x), y(y), val(v) {}
}S(0, 0, 0), E(0, 0, 0);
int dx[] = { 0,0,1,-1 ,1,1,-1,-1 };
int dy[] = { 1,-1,0,0 ,1,-1,1,-1 };int N, M;
bool judge(int x, int y) {if (x < 0 || y < 0 || x >= N || y >= M) return false;for (int i = 0; i < 8; ++i) {int nx = x + dx[i];int ny = y + dy[i];if (mp[nx][ny] == '*')  return false;}return !vis[x][y];
}
int bfs() {queue<NODE>q;S.val = 0;q.push(S);vis[S.x][S.y] = true;while (!q.empty()) {NODE now = q.front();q.pop();if (mp[now.x][now.y] == 'E')return now.val;for (int i = 0; i < 4; ++i) {int nx = now.x + dx[i];int ny = now.y + dy[i];if (judge(nx, ny)) {q.push(NODE(nx, ny, now.val + 1));vis[nx][ny] = true;}}}return -1;
}int main() {std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);while (cin >> N >> M) {memset(vis, 0, sizeof(vis));for (int i = 0; i < N; ++i) {for (int j = 0; j < M; ++j) {cin >> mp[i][j];if (mp[i][j] == 'S')S.x = i, S.y = j;else if (mp[i][j])E.x = i, E.y = j;}}int ans = bfs();if (ans == -1)cout << "Impossible" << endl;elsecout << ans << endl;}
}

哈尔滨理工大学软件与微电子学院程序设计竞赛——C.Coronavirus【BFS】相关推荐

  1. 哈尔滨理工大学软件与微电子学院程序设计竞赛 H.Maze

    哈尔滨理工大学软件与微电子学院程序设计竞赛 H.Maze 题目链接 题目描述 多多在一个N行M列的迷宫中,迷宫只由符号 '+' 或 '-' 组成.如果多多在 '+' 上,下一步只能走到上.下.左.右四 ...

  2. 哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛)

    关于哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛) 下午五点四十开始的比赛,五点二十我才刚刚抽完血,实在是有点难顶,再加上还没有吃饭,刚开始做题的时候还真是有点发懵,胳膊也很难受. 这应该是我第 ...

  3. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)B.Min Value

    哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)B.Min Value 题目链接 题目描述 有一天,老师告诉多多:绝对值是指一个数在数轴上所对应点到原点的距离. 接下来老师给多多一个由 N 个数组 ...

  4. 哈尔滨理工大学软件与微电子学院程序设计竞赛 题解

    DEF题比较难一些,目前本菜鸡能力有限. 文章目录 A-Race B-Min Value C-Coronavirus G-OXR H-Maze I-Prime J-Compare K-Walk L-D ...

  5. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)(重现赛)

    比赛地址 A. 思路:模拟 #include<iostream> #include<cstring> #include<cstdio> #include<al ...

  6. 哈尔滨理工大学软件与微电子学院程序设计竞赛(19级新生赛)——题解

    注:所有题目不要求多组输入 索引: A. 小乐乐学编程 B. 小乐乐算平均分 C. 小乐乐找最大数 D. 小乐乐是否被叫家长 E. 小乐乐转换成绩 F. 小乐乐算多少人被请家长 G. 小乐乐算最高分 ...

  7. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛) A

    文章目录 Race 题解 代码 模拟时间 模拟距离 Race 题解 模拟. 可以模拟时间增加,也可以模拟距离变化,本质是一样的. 之前看到了公倍数的条件,但是没用到,看了大佬代码之后恍然大悟hhhh ...

  8. 哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛) -补档

    time:2019.11.08 题目较多,所以使用目录. 文章目录 Problem A:[NowCoder54536 小乐乐学编程](https://ac.nowcoder.com/acm/probl ...

  9. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛) H

    Maze 题解 DFS/BFS. 这里用的是 D F S DFS DFS.其中有并查集的思想. 题目所求为某个格子最多能到达的格子的数量,那么如果格子A可以到达格子B,则格子B必定能到格子A. 也就是 ...

最新文章

  1. 实现网页中按钮刷新的N种方法
  2. 应用程序控制策略——AppLocker
  3. 联盟链赛道上,微众、蚂蚁、百度、京东等“正规军”能崛起吗?
  4. 不知道Gartner是干啥的?看看这里就知道了!
  5. 人工智能 | 自然语言处理研究报告(概念篇)
  6. 34. Find First and Last Position of Element in Sorted Array
  7. 诸事不顺--今日宜睡大觉
  8. 嵌入式物联网软件开发实战
  9. 蒙特卡罗计算积分matlab,matlab下二重积分的蒙特卡洛算法
  10. 推荐一个ITSM功能系统架构图给大家
  11. 《所谓高情商,就是会说话》思维导图精华分享
  12. 微型计算机使用的crt信号,《微型计算机及其接口技术》课程学习方法篇(2)...
  13. sendfile相关
  14. redis的字典(Hash)
  15. 2022年软件测试行业就业发展前景,软件测试前景好吗?我该学什么?
  16. 01-windows下载与安装neo4j
  17. 监听pda扫描_android系统PDA扫描枪,扫描完成后自带回车,为什么回车监听第一次不起作用,手动提交一次后才能正常提交...
  18. 阿里云研究员叔同:Serverless 正当时!
  19. 在icomoon里面下载字体图标
  20. 什么是工单流程的真正闭环

热门文章

  1. js中如何拼接字符串
  2. Fast FW54U 54M无线USB网卡 驱动下载
  3. 《SQL基础教程(第2版)》作者MICK:上帝存在于细节之中(图灵访谈)
  4. application-dev.properties
  5. Android dependencies
  6. Android 签到日历(左右滑动)
  7. k8s(Kubernetes)中Pod,Deployment,ReplicaSet,Service之间关系分析
  8. 【教程】如何使用星图地球数据云地图API调用服务
  9. 关于google地图api3的离线和在线开发(画带箭头的直线,指定范围,搜索,计算距离)
  10. V-RAY NEXT FOR MAYA 实用指南助您掌握 V-Ray 的关键技术