迷宫与陷阱

题目:0迷宫与陷阱 - 蓝桥云课 (lanqiao.cn) 

代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;int n,k;//N*N矩阵大小,k无敌状态持续的步数 
char map[1010][1010];//迷宫 
int vis[1010][1010];//标记矩阵//上下左右四个方向 
const int dr[]={-1,1,0,0};
const int dc[]={0,0,-1,1}; typedef struct node{int x,y,dis,res_k;//x,y记录位置,dis记录走的步数,res_k代表剩余无敌步数//构造函数 node(int x,int y,int dis,int res_k=0):x(x),y(y),dis(dis),res_k(res_k){}
}node;//判断是否还在迷宫内 
bool isInside(int nx,int ny)
{if(nx>=0&&nx<n&&ny>=0&&ny<n)return true;return false;
}
int bfs()
{//创建队列,初始化队列 queue<node> q;//队列node u(0,0,0,0);q.push(u);//初始化标记矩阵vis[0][0]=1;//标记当前位置已访问while(!q.empty()){node v=q.front();q.pop();//如果到达终点,结束 if(v.x==n-1&&v.y==n-1){return v.dis;} //往上下左右走 for (int i = 0; i < 4; i++){int nx=v.x+dr[i];int ny=v.y+dc[i];//跳过迷宫外 if (!isInside(nx,ny))continue;//跳过墙 if (map[nx][ny] == '#')continue;//跳过普通且陷阱 if (v.res_k==0 && map[nx][ny] == 'X')continue;//跳过普通且已经访问 if (v.res_k == 0 && vis[nx][ny])continue;// int k1 = v.res_k;k1 = max(k1 - 1, 0);//碰见道具 if (map[nx][ny] == '%'){k1 = k;map[nx][ny]='.';//下次失效 }vis[nx][ny] = 1;q.push(node(nx, ny, v.dis + 1, k1));}}return -1; } 
int main()
{cin>>n>>k;for(int i=0;i<n;i++)cin>>map[i];cout<<bfs();} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 2022之Release版本程序发送到其它计算机运行

目录 1、缺少dll​ 2、应用程序无法正常启动 3、This application failed to start because no Qt platform plugin could be initialized. 代码在Debug模式下正常运行&#xff0c;然后切换到Release模式下&#xff0c;也正常运行&#xff0c;把第三方平台的dll拷贝到exe所在…

主成分分析用于综合评价

主成分分析用于综合评价是一种常用的数据降维方法。它通过寻找数据中的主要方差方向&#xff0c;将高维数据转化为低维数据&#xff0c;以便更好地理解和分析数据。主成分分析可以帮助我们发现数据中的潜在结构和模式&#xff0c;并且可以用较少的维度来表示数据。 在综合评价…

IPv6扩展头(四)——分片头

分片头部&#xff08;Fragment Header&#xff09;用于IPv6源节点向目的节点发送一个大于路径MTU的数据报。 一、优势 IPv6 分片头具有多种优势&#xff0c;可提高网络效率&#xff0c;包括减少数据包延迟和减少网络拥塞。使用 IPv6 分片头&#xff0c;数据包在源处而不是中间…

Uninty 鼠标点击(摄像机发出射线-检测位置)

平面来触发碰撞&#xff0c;胶囊用红色材质方便观察。 脚本挂载到胶囊上方便操作。 目前实现的功能&#xff0c;鼠标左键点击&#xff0c;胶囊就移动到那个位置上。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c6 : MonoBe…

数据结构-线段树

&#x1f4d1;前言 本文主要是【线段树】——线段树简单使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&…

将父目录设置为根目录

在用这个这个项目的时候https://github.com/KaiyangZhou/deep-person-reid&#xff0c; 出现了问题 原因是执行python scripts/main.py找不到模块 ModuleNotFoundError: No module named torchreid原因是根目录在当前目录 C:\\Users\\seama\\Documents\\Workspace\\deep-per…

PyCharm Community Edition 2023.3.3,UI界面设置成旧版

File->Settings->Appearance & Behavior->New UI->Enable new UI(取消勾选)->重启PyCharm 旧版UI: 新版UI&#xff1a;

对 JVM 的类加载机制以及寻找字节码文件的“双亲委派模型”的理解

目录 1、JVM 的类加载机制 1.1、加载 1.2、验证 1.3、准备 1.4、解析 1.5、初始化 2、双亲委派模型 2.1、工作过程 1、JVM 的类加载机制 类加载指的是 Java 进程运行的时候&#xff0c;需要把 .class 文件从硬盘读取到内存&#xff0c;并进行一系列的校验解析的过程。…

人民日报:用好“人工智能+” 赋能产业升级

以下文章来源&#xff1a;北京日报 文生视频、智能家居、智慧工厂……近年来&#xff0c;人工智能发展速度之快、应用范围之广备受瞩目。 政府工作报告提出&#xff0c;深化大数据、人工智能等研发应用&#xff0c;开展“人工智能”行动&#xff0c;打造具有国际竞争力的数字产…

力扣589、590、102、107、429、199、637、515、116、117、104、111、226、101-Java刷题笔记

一、589. N 叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 1.1题目 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔&#xff08;请参见示例&#xff09…

6. 互质

互质 互质 互质 每次测试的时间限制&#xff1a; 3 秒 每次测试的时间限制&#xff1a;3 秒 每次测试的时间限制&#xff1a;3秒 每次测试的内存限制&#xff1a; 256 兆字节 每次测试的内存限制&#xff1a;256 兆字节 每次测试的内存限制&#xff1a;256兆字节 题目描述 给定…

使用Python制作自己的wheel文件

平时自己利用Python制作一个个小工具后想分享给别人&#xff0c;但又嫌分享一堆项目代码很麻烦&#xff0c;那么你可以考虑将自己的项目打包成一个wheel文件&#xff0c;别人拿到文件后只需pip install安装即可使用&#xff0c;非常方便。 在上一篇博文中&#xff0c;利用nvid…

在maven多模块之间调用报错

错误信息为&#xff1a;不能解决maven_02_ssm项目的依赖问题&#xff0c;找不到maven_03_pojo这个jar包。 为什么找不到呢? 原因是Maven会从本地仓库找对应的jar包&#xff0c;但是本地仓库又不存在该jar包所以会报错。 在IDEA中是有maven_03_pojo这个项目&#xff0c;所以…

使用 Python 字典向 SQLite 插入数据

将Python字典数据插入SQLite数据库中其实有很多好处&#xff0c;例如使用字典的结构可以简化插入数据的代码&#xff0c;使其更加紧凑和易于理解。这降低了代码的复杂性&#xff0c;并使代码更易于维护。那么在我们日常使用中会有哪些问题呢&#xff1f;一起看看我是如何解决的…

华为配置DHCP Snooping防止DHCP Server仿冒者攻击示例

配置DHCP Snooping防止DHCP Server仿冒者攻击示例 组网图形 图1 配置DHCP Snooping防止DHCP Server仿冒者攻击组网图 DHCP Snooping简介配置注意事项组网需求配置思路操作步骤配置文件 DHCP Snooping简介 在一次DHCP客户端动态获取IP地址的过程中&#xff0c;DHCP Snoopi…

机器学习知识点复习 上(保研、复试、面试)百面机器学习笔记

机器学习知识点复习上 一、特征工程1. 为什么需要对数值类型的特征做归一化&#xff1f;2. 文本表示模型3. 图像数据不足的处理方法 二、模型评估1.常见的评估指标2.ROC曲线3.为什么在一些场景中要使用余弦相似度而不是欧氏距离&#xff1f;4.过拟合和欠拟合 三、经典算法1.支持…

C语言中的面向切面编程(AOP)

概念 首先给出一段由ChatGPT给出的简短的AOP概念&#xff1a; AOP是一种编程方法&#xff0c;用来将在程序中多处重复出现的代码&#xff08;比如日志、权限控制&#xff09;从主要业务逻辑中抽取出来&#xff0c;提高代码的模块化和可维护性。 抽取后的代码会在原始的业务逻辑…

✅ Windows11 系统 I 卡独显 A770 安装 深度学习 Pytorch 环境

&#x1f4cb; 文献参考 这里非常感谢知乎上的 ‘丢丢’ 的[**Windows系统下英特尔独显Pytorch的历程**] 为我提供了一开始的 I 卡安装想法&#xff01;但是文中并未介绍如何进行额外的环境变量操作问题&#xff0c;导致很多软件直接安装至系统盘&#xff0c;占用系统盘空间&am…

网络、UDP编程

1.网络协议模型: OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&#xff08;数据报、流式&#xff09; 网络层 …

gitlab重点知识CI/CD详细步骤说明

介绍 GitHub因其庞大的社区和对开源项目的友好支持而广受欢迎,而GitLab则因其企业级特性和私有仓库的便利性而在企业内部得到广泛应用。 GitLab是一个开源的仓库管理系统,它使用Git作为代码管理工具,并提供了基于Web的服务。 GitLab具有以下特点: 集成了版本控制、持续集…