Description

龙龙最近迷上了一款名叫 PUBG(PLAYERUNKNOWN’S BATTLEGROUNDS)的手游,那是一款关乎生存挑战的 RPG 逃亡游戏。

考虑到游戏的环节过于复杂,龙龙决定简化一下场景:整个地图可以看做一个长为 ​ 宽为 ​ 的二维格点平面。龙龙需要从 但有些格点上存在障碍#不能行走,有些格点是沙地.。龙龙只能移动在允许行走的沙地上,同时每一时刻,龙龙只能朝着当前位置周围的上、下、左、右四个方向移动。同时因为龙龙使用了能量饮料,每分钟最多可以朝着一个方向行走

#include <queue>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;const int maxn = 1010;
const int dx[] = {0, 0, 1, -1};
const int dy[] = {1, -1, 0, 0};struct node {int x, y;int step;// 初始化列表node(int _x, int _y, int _step) : x(_x), y(_y), step(_step) {}
};
queue<node> que;
int vis[maxn][maxn];
char mp[maxn][maxn];int main() {int n, m, k;int start_x, start_y, end_x, end_y;scanf("%d%d%d", &n, &m, &k);for (int i = 0; i < n; ++i) {scanf("%s", &mp[i]);//取二维数组某一组元素的首地址进行存储,记住这种存储方式}scanf("%d%d%d%d", &start_x, &start_y, &end_x, &end_y);// 又是一套初始化memset(vis, 0, sizeof(vis));que.push(node(start_x-1, start_y-1, 0));//把括号内的三个作为三个参数传递进去,把一个node型数据放进队列vis[start_x-1][start_y-1] = 1;int ans;int flag = 0;while (!que.empty()) {node tmp = que.front();//tmp为取出来的待处理的队首struct node类型的元素que.pop();for (int i = 0; i < 4; ++i) {for (int j = 1; j < k+1; j++){int x = tmp.x + dx[i] * j, y = tmp.y + dy[i] * j;if (x < 0 || x >= n || y < 0 || y >= m || mp[x][y] == '#' ){break;}if(vis[x][y] == 1)continue;if (x == end_x-1 && y == end_y-1) {ans = tmp.step+1;flag = 1;goto z;}que.push(node(x, y, tmp.step + 1));vis[x][y] = 1;}}}    z: if(flag)printf("%d\n", ans);elseprintf("-1\n");return 0;
}

17. 进圈 编程练习相关推荐

  1. 中国电子学会青少年编程能力等级测试图形化一级编程题:小狗进圈

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 小狗进圈 小狗非常听话,收到命令能在舞台 ...

  2. 2021年9月电子学会图形化一级编程题解析含答案:小狗进圈

    [此题目来自2021年9月份电子学会] [青少年软件编程(图形化)等级考试试卷(一级)] 三.编程题(共2题,共30分) 37.小狗进圈 小狗非常听话,收到命令能在舞台上向右移动,如下图所示,它只能移 ...

  3. 【编程题】【Scratch一级】2021.09 小狗进圈

    小狗进圈 小狗非常听话,收到命令能在舞台上向右移动,如下图所示,它只能移动到相邻的圈里,不能跑到圆圈外. 1. 准备工作 (1)背景:根据上图绘制背景: (2)删除小猫角色,添加角色:Dog2: (3 ...

  4. 非零基础自学Golang 第17章 HTTP编程(上) 17.3 爬虫框架gocolly 17.3.1 gocolly简介

    非零基础自学Golang 文章目录 非零基础自学Golang 第17章 HTTP编程(上) 17.3 爬虫框架gocolly 17.3.1 gocolly简介 第17章 HTTP编程(上) 17.3 ...

  5. 每日一书丨《百万在线》罗培羽:服务端入门不该陷进网络编程

    刚毕业到游戏公司工作时,项目组用了纯C++技术方案,主管丢给一本400+页的<TCP/IP详解>,说啃完它就算入门了.可是对于毕业生而言,看这种书就像在看字典,看了很久也写不出有实际意义的 ...

  6. 西安尚学堂练习09.17|Java编程笔试面试题

    下列哪些类型能被throw语句抛出? A. Error B. Exception C. Throwable D. Object [解]注意Error也是可以被throw的,只是通常Error出现程序就 ...

  7. 【C++】C/C++面试之17道经典编程题目分析

    本篇是C/C++面试题目,共计17道经典题.其中涵盖了C的各种基础语法和算法,以函数接口设计和算法设计为主. (读者可以看着题目先做一遍,做完再看解析,大家可以互相学习) 目录: 函数书写 经典题题目 ...

  8. 从 C++98 到 C++17,元编程是如何演进的? | 技术头条

    作者 | 祁宇 责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 不断出现的C++新的标准,正在改变元编程的编程思想,新的idea和方法不断涌现,让元编程变得越来越简单,让C++变得简单也 ...

  9. 第13届蓝桥杯省赛真题剖析-2022年4月17日Scratch编程初中级组

    [导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第122讲. 第13届蓝桥杯省赛举办了两次,这是202 ...

最新文章

  1. flutter 安装遇坑记录
  2. 中国计算机与信息服务贸易,中国计算机与信息服务贸易国际竞争力研究
  3. 【TypeScript】do...while 循环
  4. Java 数组转化成集合
  5. 中职计算机组成原理期末,计组期末复习
  6. 千兆网线8根线定义图_网线水晶头如何制作及怎么测试?
  7. springboot2源码1-SpringApplication实例化
  8. JAVA 使用Dom4j 解析XML
  9. vue中keep-alive缓存功能使用详解
  10. oracle必须配置哪个参数,oracle – 此操作必须将ORA-02069 global_names参数设置为TRUE...
  11. HackerRank Lists
  12. Java并发编程系列文章目录帖及源码
  13. js中判断对象数组中是否存在某个对象,以及使用判断是否存在某个元素的indecOf()和find()方法
  14. java jemalloc_jemalloc 快速上手攻略
  15. 开源 cocos2dx 五彩连珠.
  16. Ardunio开发实例-ADS1115模数转换器
  17. qq相册传照片显示服务器,我QQ像册传照片了可图标还是灰色的怎么办 – 手机爱问...
  18. drawline java_Java代码g.drawLine(100,100,100,100)的功能是()
  19. 信息安全—密码学信息熵信息理论基础—熵的概念(熵、联合熵、条件熵、平均互信息)
  20. 计算机装系统教程网,电脑重装系统教程知识

热门文章

  1. AE 动画的分层与组合
  2. 世界在变化刷脸支付一直奋进
  3. aws ec2 mysql 端口_亚马逊:AWS EC2 的 Linux 服务器 开放端口教程
  4. (二)安装SVN服务器,web管理界面
  5. 原来网易的lofter界面是模仿的是tumblr
  6. 用matlab画企鹅代码,CDR绘制超级可爱的QQ企鹅
  7. 基于JAVA养老院管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  8. PokerNet-poker recognition: 扑克识别 (6)
  9. WPF 制作带TreeView的ComBox
  10. Qt-Q_OBJECT宏及控件提升导致的类重定义问题