样例输入

4 3 1 1
....
..*.
.**.

样例输出

4

题解
一定注意 u,vu,v 的位置处理。

这道题目想必你已经可以直接想到bfs搜索了吧。把整个图遍历一遍,顺便记录下步数就可以了。

其他的就是和普通bfs差不太多。

#include<bits/stdc++.h>
using namespace std;
int X,Y,mx,my;
char mp[105][105];
int ans;
int dir[8][2]={{0,1},{1,1},{1,0},{0,-1},{-1,-1},{-1,0},{-1,1},{1,-1}};
struct Node{int x,y;int d;
};
void bfs(int xx,int yy){queue<Node> q;q.push({xx,yy,0});while(!q.empty()){Node now=q.front();ans=now.d;q.pop();for(int i=0;i<8;i++){int tx=now.x+dir[i][0];int ty=now.y+dir[i][1];if(mp[tx][ty]=='.'&&tx>=0&&tx<Y&&ty>=0&&ty<=X){mp[tx][ty]='M';q.push({tx,ty,now.d+1});}}}
}
int main(){cin>>X>>Y>>mx>>my;int tx=Y-my;int ty=mx-1;mx=tx,my=ty;for(int i=0;i<Y;i++){cin>>mp[i];}mp[mx][my]='M';bfs(mx,my);cout<<ans<<endl;return 0;
}

计蒜客:乳草的侵占(BFS)相关推荐

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

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

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

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

  3. 计蒜客-蒜头君回家(bfs)

    蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家.花椰妹告诉他:"你家的钥匙被我复制了很多个,分别放在不同的地方." 蒜头君希望能尽快回到家中 ...

  4. 计蒜客 Emptying the Baltic (BFS+Dijkstra)

    看起来一道很神奇的题目,最后居然很想是最短路的-- 大致题意:给你一个N*N的地图,然后每个格点的面积是1,图中标明了数字表示地形的海拔.初始的时候海拔低于0的地方都有水,然后告诉你在某一个固定的位置 ...

  5. 计蒜客 鸣人和佐助 bfs

    佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这 ...

  6. 计蒜客:密码锁---bfs

    计蒜客:密码锁-bfs 题目描述: 现在一个紧急的任务是打开一个密码锁.密码由四位数字组成,每个数字从1到9进行编号.每次可以对任何一位数字加1或减1.当将9加1时,数字变为1,当1减1时,数字变为9 ...

  7. 计蒜客:迷宫(二)---bfs

    计蒜客:bfs求解迷宫游戏 题目描述: 蒜头君在你的帮助下终于逃出了迷宫,但是蒜头君并没有沉浸于喜悦之中,而是很快的又陷入了思考,从这个迷宫逃出的最少步数是多少呢? 输入格式 第一行输入两个整数 nn ...

  8. 计蒜客题解——T1214:鸣人和佐助

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1214. 题目描述 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到 ...

  9. 计蒜客题解——T1213:拯救行动

    题目相关 题目链接 计蒜客 OJ,https://nanti.jisuanke.com/t/T1213. 题目描述 公主被恶人抓走,被关押在牢房的某个地方.牢房用 N×M(N,M≤200) 的矩阵来表 ...

  10. 计蒜客题解——T1769:最大岛屿

    题目相关 题目链接 计蒜客,https://nanti.jisuanke.com/t/T1405. 我的OJ,http://47.110.135.197/problem.php?id=5254. 题目 ...

最新文章

  1. 统计java文件中的代码行数
  2. 利用 :placeholder-shown 选择器实现 label 浮动效果
  3. 使用纯C语言开始win32 sdk编程
  4. oracle安装参数,Oracle安装内核参数设置
  5. 数据结构二:排序(快速排序和堆排序)
  6. android sudio jni 调用so_UE4:UPL 与 JNI 调用的最佳实践
  7. php 缩略图增加水印,PHP生成缩略图加图片水印代码
  8. 一次线上事故,让我对MySql的时间戳存char(10)还是int(10)有了全新的认识
  9. 【转】Senior Data Structure · 浅谈线段树(Segment Tree)
  10. quill鼠标悬浮 出现提示_html实现鼠标悬停显示气泡文字内容
  11. 5.abp框架code first方式删除表
  12. 风灵月影捆绑软件解决办法(修改器)
  13. oracle 回收站清空,Oracle 清空回收站
  14. 为什么RTC晶振频率是32768Hz
  15. BZOJ4049 [Cerc2014] Mountainous landscape
  16. vb msgbox各种图标样式及按钮样式
  17. pc端客户端爬虫_爬虫微博模拟登陆-从移动端到PC端
  18. 解决ntp的错误:no server can be used,exiting
  19. 由中序和后序(前序)序列求前序(后序)序列
  20. 虹科方案 | 制药环境中冰箱温度记录的最佳实践——全集成温度监测系统

热门文章

  1. 只要30行代码!7步教会你Python爬取网页抖音热门视频
  2. VNPY官方开源项目为什么不能选择MIT开源协议
  3. LINUX中添加用户时为用户设置了全名(FULL NAME)
  4. Creo(proe)自定义功能区
  5. 步进驱动器基础及工作原理
  6. Linux环境下查看服务器硬件信息
  7. 惠普linux进入bios设置u盘启动,惠普笔记本怎么设置u盘启动|惠普电脑bios设置usb启动的方法...
  8. 云计算就业前景怎么样 学完后能胜任什么岗位
  9. 关于打印机服务器的驱动安装总结
  10. 派生词 计算机英语,英语词缀ex- (e-,ef- ) (I out,out of II former) 与派生词