题目链接

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. 为什么你写的代码糟透了?
  2. 基于自然语言的软件工程和程序设计(下)
  3. Fabric--configtxlator转换配置添加组织到channel
  4. 【已解决】Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versi
  5. [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
  6. Visual Studio 2010 实用功能总结图解
  7. [深入学习Redis]RedisAPI的原子性分析
  8. 583. 两个字符串的删除操作(JavaScript)
  9. 如果苹果公司允许其他手机厂商使用iOS系统,对苹果公司来说会有什么好处?
  10. 家长的爱-爱对了吗? - 刘浩霖
  11. 一些有趣的404错误设计
  12. Mysql备份策略-完成备份+增量备份shell
  13. 为什么做AI的都选Python?
  14. 《那些年啊,那些事——一个程序员的奋斗史》三
  15. JSP——(图片验证码)
  16. spring注解@Lazy
  17. 证明不同特征值的实对称矩阵的特征向量相互正交的
  18. 华硕主板无盘启动bios设置_华硕主板怎么进入bios?华硕主板进入bios设置u盘启动方法...
  19. 自动连接 无法连接网络连接服务器,微信提示无法连接到服务器怎么办?微信无法连接服务器怎么解决?...
  20. 正点原子ARM裸机开发篇

热门文章

  1. Pbr之连通SubstancePainter和unity
  2. facebook开源项目全景投影转换Transform360
  3. k8s创建pod资源失败OCI runtime create failed systemd cgroup flag passed, but systemd support for managing c
  4. js修改bgcolor
  5. MBD设计模式(机器人开发,控制系统开发)
  6. ABP官方文档(三十)【动态WebApi层】
  7. dmg和tar.gz的区别
  8. Mac必备的PPT神器:PPT2019最新完整版
  9. html计算器的基本功能实现,javascript实现计算器功能
  10. netty半包粘包 处理_Java NIO 框架 Netty 之美:粘包与半包问题