CH2907 乳草的入侵 BFS
题目链接
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相关推荐
- bzoj 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵 Time Limit: 3 Sec Memory Limit: 128 MB Submit: ...
- Tyvj P1030 乳草的入侵
描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地. 草地像往常一样,被分割成 ...
- TYVJ P1030 乳草的入侵 Label:跳马问题
背景 USACO OCT09 6TH 描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一 ...
- tyvj p1030 乳草的入侵
原题链接: http://www.tyvj.cn/p/1030 具体实现如下: #include<stdio.h> #include<string.h> #include< ...
- 计蒜客————乳草的侵占
Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地. 草地像往常一样,被分割成一个 ...
- 坑!计蒜客——乳草的侵占
计蒜客--乳草的侵占(BFS) BFS一直写不会,可能是多加了个队列,写起来不是太容易.不过最近还是稍微入门了BFS,跟DFS差别不太大,还是由三个部分组成--出口.标记.枚举. DFS的主要的思想就 ...
- 计蒜客:乳草的侵占(BFS)
样例输入 4 3 1 1 .... ..*. .**. 样例输出 4 题解 一定注意 u,vu,v 的位置处理. 这道题目想必你已经可以直接想到bfs搜索了吧.把整个图遍历一遍,顺便记录下步数就可以了 ...
- DFS与BFS的总结
一般来说是BFS比较快的吧.因为没有递归,runtime_error一般就是内存溢出,就是越界了! BFS一般用来搜索最短路径最好,DFS用来搜索能不能到达目的地之类的 BFS与DFS的讨论:BFS: ...
- 进击高手【第四期】(bfs)
bfs 定义 宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型.Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的 ...
最新文章
- Segment Routing — SR-MPLS
- 学习总结5 - bootstrap学习记录1__安装
- [ mongoDB ] - mongoDB的基本操作
- webpack是什么?为什么要用webpack(一个小白的感想)
- mysql获取分组后每组的最大值
- Docker Registry 详解
- [《不敢说爱的年纪》小个子的小说集]2012年8月28日
- rancher 启动命令_Rancher 快速上手指南操作(1)
- lodash中curry的实现
- Vue 项目中各种痛点问题及方案(建议收藏)
- 太阳能光伏发电和路灯应用系统的详细计算
- 取消GitHub邮箱订阅
- Python Flask开发简单http api接口 示例
- 项目在使用easyui时遇到的问题
- redis 8.Redis持久化之RDB (如何触发RDB快照;rdb备份恢复)
- HEVC/H.265编码HM码率控制
- 物理学陷入困境:接下来该怎么办?
- PoW,PoS 和PoA浅析
- ubuntu安装百度网盘linux版客户端
- 让错误代码更明显-Making Wrong Code Look Wrong