题目链接

http://noi-test.zzstep.com/contest/0x29%E3%80%8C%E6%90%9C%E7%B4%A2%E3%80%8D%E7%BB%83%E4%B9%A0/2907%20%E4%B9%B3%E8%8D%89%E7%9A%84%E5%85%A5%E4%BE%B5

分析

BFS裸题,每次向周边八个位置扩展即可。

AC代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>using namespace std;inline int read() {int num = 0;char c = getchar();while (c < '0' || c > '9') c = getchar();while (c >= '0' && c <= '9')num = num * 10 + c - '0', c = getchar();return num;
}const int maxn = 105;
const int nxt[8][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1},{-1, -1}, {-1, 1}, {1, -1}, {1, 1}};struct Node {int x, y;
} st;int n, m, d[maxn][maxn], ans;
char map[maxn][maxn];
queue<Node> q;inline int judge(int x, int y) {return x > 0 && x <= n && y > 0 && y <= m && map[x][y] != '*';
}inline void bfs() {memset(d, -1, sizeof(d));d[st.x][st.y] = 0;q.push(st);while (!q.empty()) {Node u = q.front(), v;q.pop();ans = max(ans, d[u.x][u.y]);for (int i = 0; i < 8; ++i) {v.x = u.x + nxt[i][0], v.y = u.y + nxt[i][1];if (!judge(v.x, v.y)) continue;if (d[v.x][v.y] == -1) {d[v.x][v.y] = d[u.x][u.y] + 1;q.push(v);}}}
}int main() {m = read(), n = read();st.y = read(), st.x = read();for (int i = 1; i <= n; ++i) scanf("%s", map[i] + 1);bfs();printf("%d", ans);return 0;
}

CH2907 乳草的入侵 BFS相关推荐

  1. bzoj 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵

    3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵 Time Limit: 3 Sec  Memory Limit: 128 MB Submit:  ...

  2. Tyvj P1030 乳草的入侵

    描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地. 草地像往常一样,被分割成 ...

  3. TYVJ P1030 乳草的入侵 Label:跳马问题

    背景 USACO OCT09 6TH 描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一 ...

  4. tyvj p1030 乳草的入侵

    原题链接: http://www.tyvj.cn/p/1030 具体实现如下: #include<stdio.h> #include<string.h> #include< ...

  5. 计蒜客————乳草的侵占

    Farmer  John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地. 草地像往常一样,被分割成一个 ...

  6. 坑!计蒜客——乳草的侵占

    计蒜客--乳草的侵占(BFS) BFS一直写不会,可能是多加了个队列,写起来不是太容易.不过最近还是稍微入门了BFS,跟DFS差别不太大,还是由三个部分组成--出口.标记.枚举. DFS的主要的思想就 ...

  7. 计蒜客:乳草的侵占(BFS)

    样例输入 4 3 1 1 .... ..*. .**. 样例输出 4 题解 一定注意 u,vu,v 的位置处理. 这道题目想必你已经可以直接想到bfs搜索了吧.把整个图遍历一遍,顺便记录下步数就可以了 ...

  8. DFS与BFS的总结

    一般来说是BFS比较快的吧.因为没有递归,runtime_error一般就是内存溢出,就是越界了! BFS一般用来搜索最短路径最好,DFS用来搜索能不能到达目的地之类的 BFS与DFS的讨论:BFS: ...

  9. 进击高手【第四期】(bfs)

    bfs 定义 宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型.Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的 ...

最新文章

  1. Segment Routing — SR-MPLS
  2. 学习总结5 - bootstrap学习记录1__安装
  3. [ mongoDB ] - mongoDB的基本操作
  4. webpack是什么?为什么要用webpack(一个小白的感想)
  5. mysql获取分组后每组的最大值
  6. Docker Registry 详解
  7. [《不敢说爱的年纪》小个子的小说集]2012年8月28日
  8. rancher 启动命令_Rancher 快速上手指南操作(1)
  9. lodash中curry的实现
  10. Vue 项目中各种痛点问题及方案(建议收藏)
  11. 太阳能光伏发电和路灯应用系统的详细计算
  12. 取消GitHub邮箱订阅
  13. Python Flask开发简单http api接口 示例
  14. 项目在使用easyui时遇到的问题
  15. redis 8.Redis持久化之RDB (如何触发RDB快照;rdb备份恢复)
  16. HEVC/H.265编码HM码率控制
  17. 物理学陷入困境:接下来该怎么办?
  18. PoW,PoS 和PoA浅析
  19. ubuntu安装百度网盘linux版客户端
  20. 让错误代码更明显-Making Wrong Code Look Wrong

热门文章

  1. python调用通达信函数_mootdx: 通达信数据读取 pytdx 的一个简便使用封装
  2. 主数据项目实施方法与核心步骤
  3. Oracle中游标Cursor基本用法详解
  4. 如何在Windows下添加网卡
  5. 软件测试大赛之移动测试练习题-全能计算器
  6. 多普勒激光雷达数据采集系统
  7. 苹果消息推送服务教程(三步曲)-超详细
  8. 基于UDQ的并网单相逆变器控制【同步参考系下单相并网全桥正弦PWM逆变器闭环控制】(Simulink)
  9. argo workflow RBAC权限:赋予cluster-admin角色(k8s role)
  10. 为什么要选择react