题目

2548. 大胖子走迷宫 - AcWing题库

解释

  • 纯纯使用bfs来判断
  • 与一般bfs不同的是,增加了时间维度
  • 当时间小于2*k时
  • 我们首先进行两种选择
  • 一个是原地等待,一个是前进
  • 当时间大于2*k时
  • 只管前进即可
  • 一个细节点在于
  • 体型的变化在胖子移动后才发生
  • 因此check判断时,胖子的体型还是移动前的体型,即t.time
#include<bits/stdc++.h>
using namespace std;
const int N=330;
char g[N][N];
bool st[N][N];
int n,k;
struct state
{int x;int y;int time;
};
bool check(int x,int y,int nowtime)
{int m=0;if(nowtime<k)m=2;else if(nowtime >=2*k)m=0;else m=1;if(st[x][y])return false;for(int i=x-m;i<=x+m;i++){for(int j=y-m;j<=y+m;j++)if(g[i][j]!='+')return false;}return true;
}
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
int bfs()
{queue<state>q;q.push({3,3,0});st[3][3]=true;while(q.size()){auto t=q.front();q.pop();if(t.time<2*k)q.push({t.x,t.y,t.time+1});for(int i=0;i<4;i++){int xx=t.x+dx[i],yy=t.y+dy[i];if(!check(xx,yy,t.time))continue;q.push({xx,yy,t.time+1});st[xx][yy]=true;if(xx==n-2&&yy==n-2)return t.time+1;}}}
int main()
{cin >> n >> k;for (int i = 1; i <= n; i++)for(int j=1;j<=n;j++)cin >> g[i][j];cout << bfs() << endl;}

【BFS】大胖子走迷宫相关推荐

  1. 【含泪总结】大胖子走迷宫(bfs+读懂题意)

    2548. 大胖子走迷宫 小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×1 的面积,小明要占用 5×5 的面积. 由于小明太胖了,所以他行动起来很不方便. 当玩一些游戏时,小明相比小伙伴就 ...

  2. 刷题 BFS 广度优先算法 : 大胖子走迷宫 (python, java)

    刷题 BFS 广度优先算法 : 大胖子走迷宫 (python, java) https://www.lanqiao.cn/problems/234/learning/ http://lx.lanqia ...

  3. 蓝桥杯国赛-大胖子走迷宫

    广度优先搜索,见注释 五个状态:上下左右停 题目提交 import java.util.ArrayDeque; import java.util.Queue; import java.util.Sca ...

  4. Java B组蓝桥杯第十届国赛:大胖子走迷宫

    试题 H: 大胖子走迷宫 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] 小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1 × 1 的面积, 小明要占用 5 ...

  5. 2019年第十一届蓝桥杯国赛JavaB组第H题——“大胖子走迷宫”题目及解析

    测试样例 Input: 9 5 +++++++++ +++++++++ +++++++++ +++++++++ +++++++++ ***+***** +++++++++ +++++++++ ++++ ...

  6. 蓝桥杯_大胖子走迷宫

    题目描述 小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×11×1 的面积,小明要占用 5×55×5 的面积. 由于小明太胖了,所以他行动起来很不方便.当玩一些游戏时,小明相比小伙伴就吃亏很 ...

  7. 2548. 大胖子走迷宫 (时间bfs)

    小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×1 的面积,小明要占用 5×5 的面积. 由于小明太胖了,所以他行动起来很不方便. 当玩一些游戏时,小明相比小伙伴就吃亏很多. 小明的朋友们制 ...

  8. 第十届蓝桥杯(国赛)——大胖子走迷宫

    题目描述 小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×11 × 11×1 的面积,小明要占用 5×55 × 55×5 的面积. 由于小明太胖了,所以他行动起来很不方便.当玩一些游戏时,小 ...

  9. 大胖子走迷宫(蓝桥杯真题)

    小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×11×1 的面积,小明要占用 5×55×5 的面积. 由于小明太胖了,所以他行动起来很不方便. 当玩一些游戏时,小明相比小伙伴就吃亏很多. 小 ...

最新文章

  1. android 图片绑定按钮,Android编程实现给Button添加图片和文字的方法
  2. Android 友盟分享躺过的几个坑,大坑,坑爹啊
  3. WPF IP地址输入控件的实现
  4. 关于STM32 SPI NSS的讨论
  5. 输出对角线(输出格式控制)
  6. [蓝桥杯][2013年第四届真题]带分数
  7. 48个越吃越瘦的诀窍 - 生活至上,美容至尚!
  8. 《一天聊一个设计模式》 单例
  9. CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
  10. php mysql odbc_使用PHP和MySQL专用接口以及ODBC接口
  11. C语言书籍推荐从入门到进阶再到封神全套(2021年整理)
  12. Java常用设计模式及应用场景介绍
  13. 如何设计一个好看的 404 错误页面 ?
  14. safari遮罩无效
  15. 操作系统学习笔记(五)---进程同步
  16. java实现单个或多个文件的压缩、解压缩 支持zip、rar等格式
  17. phoenix-5.1.2 Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM
  18. getsockopt
  19. vue3+ts+el-tabs+keep-alive
  20. BUUCTF_Crypto题目:rot

热门文章

  1. composer更换国内镜像地址
  2. 姜小白的Python日记Day10 装饰器
  3. 计算机超级账号密码,获取光猫超级用户密码,自己动手分分钟搞定!
  4. 反复踩坑的ceres安装-----ubuntu18.04
  5. 系统安装教程之硬盘分区格式化(MBR或GPT)
  6. 直男福利!手把手教你做一只口红色号识别器,秒变李佳琦
  7. CocosCreator开场CG动画制作
  8. 基于涂鸦智能开发的墨水屏座位管理器——2.嵌入式功能实现篇
  9. 质量管理的三大概念:QA,QC,QM,你能给自己准确定位吗?
  10. 《Miss Talk》第07期:对话拓课云联合创始人兼CTO 王晓伟