当前位置: 首页 > news >正文

网页设计网站开发需要什么查收录网站

网页设计网站开发需要什么,查收录网站,手机端便民服务平台网站建设,聊城网站建设lckjxx文章目录 迷宫与陷阱问题描述bfs解题思路代码 迷宫与陷阱 问题描述 小明在玩一款迷宫游戏#xff0c;在游戏中他要控制自己的角色离开一间由 N x N 个格子组成的2D迷宫。 小明的起始位置在左上角#xff0c;他需要到达右下角的格子才能离开迷宫#xff0c;每一步#xf… 文章目录 迷宫与陷阱问题描述bfs解题思路代码 迷宫与陷阱 问题描述 小明在玩一款迷宫游戏在游戏中他要控制自己的角色离开一间由 N x N 个格子组成的2D迷宫。 小明的起始位置在左上角他需要到达右下角的格子才能离开迷宫每一步他可以移动到上下左右相邻的格子中。 迷宫中有些格子小明可以经过我们用 ‘.’ 表示有些格子是墙壁小明不能经过我们用 ‘#’ 表示。 此外有些格子上有陷阱我们用 ‘X’ 表示除非小明处于无敌状态否则不能经过有些格子上有无敌道具我们用 ‘%’ 表示。 当小明第一次到达该格子时自动获得无敌状态无敌状态会持续 K 步之后如果再次到达该格子不会获得无敌状态了。 处于无敌状态时可以经过有陷阱的格子但是不会拆除/毁坏陷阱即陷阱仍会阻止没有无敌状态的角色经过。 给定迷宫请你计算小明最少经过几步可以离开迷宫 输入格式 第一行包含两个整数 N 和 K。 以下 N 行包含一个 N x N 的矩阵矩阵保证左上角和右下角是 ‘.’。 输出格式 一个整数表示答案。 如果小明不能离开迷宫输出 -1。 样例输入1 5 3 ...XX ##%#. ...#. .###. .....样例输出1 10数据范围 1 ≤ N ≤ 1000 1 ≤ K ≤ 10 bfs 解题思路 在之前那题迷宫蓝桥杯——DFS和BFS的基础上本题加了很多特殊的情况逐一判断即可。 注意d标记标记数组表示是否已该能量值到达过该点并存储到达每个位置的最短步数。 代码 这段代码是用来解决上述迷宫游戏的问题实现思路是通过广度优先搜索BFS算法。下面是代码的详细注释解释 #includebits/stdc.h using namespace std;struct node {int x, y, k; // 用于存储当前节点的位置x,y以及剩余无敌步数k };char g[1010][1010]; // 用于存储迷宫信息 int d[1010][1010][11]; // 用于存储到达每个位置的最短步数最后一维表示剩余无敌步数 queuenode q; // BFS使用的队列 int dx[4]{-1,1,0,0}; // x方向移动的四个方向上、下 int dy[4]{0,0,-1,1}; // y方向移动的四个方向左、右 int n, k; // n表示迷宫的大小k表示无敌道具的作用步数// 检查(x,y)位置是否可达即不是墙壁#且在迷宫范围内 bool check(int x,int y) {if(x0 xn y0 yn g[x][y]!#)return true;return false; }// 广度优先搜索函数返回从起点到终点的最短步数 int bfs() {q.push({0,0,0});d[0][0][0] 0;while(q.size()) {auto t q.front(); // 取出队首元素q.pop(); // 弹出队首元素// 如果到达终点返回到达终点的步数if(t.xn-1 t.yn-1) return d[t.x][t.y][t.k];for(int i0; i4; i) { // 遍历四个方向int x t.x dx[i];int y t.y dy[i];if(check(x,y)) { // 检查新位置是否可达// 如果是无敌道具%且新位置未被访问更新状态并加入队列if(g[x][y]% d[x][y][k]-1) {q.push({x,y,k});d[x][y][k] d[t.x][t.y][t.k] 1;}// 如果是陷阱X且有无敌状态且新位置未被访问更新状态并加入队列if(g[x][y]X t.k d[x][y][t.k-1]-1) {q.push({x,y,t.k-1});d[x][y][t.k-1] d[t.x][t.y][t.k] 1;}// 如果是空地.且有无敌状态且新位置未被访问更新状态并加入队列if(g[x][y]. t.k d[x][y][t.k-1]-1) {q.push({x,y,t.k-1});d[x][y][t.k-1] d[t.x][t.y][t.k] 1;}// 如果是空地.且没有无敌状态且新位置未被访问更新状态并加入队列if(g[x][y]. t.k0 d[x][y][t.k]-1) {q.push({x,y,t.k});d[x][y][t.k] d[t.x][t.y][t.k] 1;}}}}// 如果不能到达终点返回-1return -1; }int main() {cin n k; // 输入迷宫的大小和无敌步数memset(d, -1, sizeof(d)); // 初始化d数组为-1表示未访问状态// 读入迷宫信息for(int i 0; i n; i)for(int j 0; j n; j)cin g[i][j];// 输出从起点到终点的最短步数cout bfs() endl;return 0; }这段代码通过广度优先搜索BFS算法利用队列来探索从起点左上角到终点右下角的最短路径同时处理无敌状态和陷阱从而找出小明离开迷宫的最短步数。
http://www.hkea.cn/news/14364187/

相关文章:

  • kali钓鱼网站制作网站建设与维护面试
  • 专业的上海网站建设公司139邮箱网页版登录
  • 创建一个网站英语dw做网站注册页代码
  • 手机网站域名哪里注册广西红豆梧州论坛
  • 网站换了域名做跳转企业网站源码自适应
  • 做营销网站应该要注意些什么网站流量 龙优化软件
  • 海拉尔做网站多少钱在线注册网站
  • 做一个公司网站需要多少钱淘宝关键词搜索量查询
  • php开发系统网站建设西安哪家网站公司做的比较好
  • 为什么进行网站备案网站开发项目推荐
  • 企业备案网站名称要求怎么建设vip电影网站
  • 做网站与数据库的关系免费商城网站制作
  • asp.net网站开发是什么专业做网站的公司哪家好
  • 网站建设微金手指排名html5 学习网站
  • 温州网站制作系统Wordpress可视化导航
  • 做网站4000-262-263东莞招聘网最新招聘信息
  • 衡阳网站制作ps网上教程
  • 两学一做网站进不去关于建设网站的图片素材
  • 网上网站怎么做网站链接的常见形式
  • 织梦手机网站标签调用大全中国安能(深圳)建设公司
  • 慕课网站开发与实现工程建设教育网首页
  • 外贸商城网站系统海南百度推广开户
  • 做营销的有那么网站怎样在微信中做网站
  • 门户网站用什么源码山东建设项目环境影响登记网站
  • 漳州网站建设 林网站开发流程简述
  • 设计师导航网站源码wordpress 汉化不是很好
  • 做网站需要哪些准备网站维护需要
  • 天津企业网站建站模板逸阳网站建设的目标
  • 罗湖网站建wordpress static配置
  • 南京免费发布信息网站南京网站建设公司 雷