【错题集-编程题】kotori 和迷宫(BFS / DFS)

牛客对应题目链接:kotori和迷宫 (nowcoder.com)


一、分析题目

迷宫问题的扩展。

二、代码

#include <iostream>
#include <cstring>
#include <queue>using namespace std;const int N = 35;
int x1, y1; // 标记起点位置
int n, m;
char arr[N][N];
int dist[N][N];
queue<pair<int, int>> q;int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};void bfs()
{memset(dist, -1, sizeof dist);dist[x1][y1] = 0;q.push({x1, y1});while(q.size()){auto [x2, y2] = q.front();q.pop();for(int i = 0; i < 4; i++){int a = x2 + dx[i], b = y2 + dy[i];if(a >= 1 && a <= n && b >= 1 && b <= m && dist[a][b] == -1 && arr[a][b] != '*'){dist[a][b] = dist[x2][y2] + 1;if(arr[a][b] != 'e'){q.push({a, b});}}}}
}int main()
{cin >> n >> m;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> arr[i][j];if(arr[i][j] == 'k'){x1 = i, y1 = j;}}}bfs();int count = 0, ret = 1e9;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){if(arr[i][j] == 'e' && dist[i][j] != -1){count++;ret = min(ret, dist[i][j]);}}}if(count == 0) cout << -1 << endl;else cout << count << " " << ret << endl;return 0;
}

三、反思与改进

没有设置好对不同字符的处理条件。

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

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

相关文章

电机控制系列模块解析(23)—— 同步机初始位置辨识

一、两个常见问题 为什么感应电机&#xff08;异步机&#xff09;不需要初始位置辨识&#xff1f;&#xff08;因此感应电机转子磁场在定子侧进行励磁&#xff0c;其初始位置可以始终人为定义为0&#xff09; 为什么同步磁阻电机需要初始位置辨识&#xff1f;&#xff08;因为…

五分钟搭建一个Suno AI音乐站点

五分钟搭建一个Suno AI音乐站点 在这个数字化时代&#xff0c;人工智能技术正以惊人的速度改变着我们的生活方式和创造方式。音乐作为一种最直接、最感性的艺术形式&#xff0c;自然也成为了人工智能技术的应用场景之一。今天&#xff0c;我们将以Vue和Node.js为基础&#xff…

【软件设计师】计算机组成原理

1、数据的表示 1.1 进制转换 整型有4种进制形式&#xff1a; 1.十进制&#xff08;D&#xff09;&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff08;B&#xff09;&#xff1a; 由0和1两个数字组成。 3.八进制&#xff08;O&#xff09;&am…

嵌入式进阶——数码管

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

linux centos循环ping网段ip

循环ping&#xff0c;检测ip是否可用&#xff0c;ping通为正在使用yes&#xff0c;no为不通 vim test.sh#!/bin/bash ip"192.168.1."echo "ping log:" > ./ping.txt for i in {1..128} doping -c 1 -w 1 -W 1 $ip$i | grep -q "ttl" &&a…

Android跨进程通信--Binder机制及AIDL是什么?

文章目录 Binder机制Binder是什么&#xff1f;Binder相对于其他几种跨进程通信方式&#xff0c;有什么区别&#xff1f;谈一下 Binder IPC 通信过程&#xff1a;具体的通讯过程是什么&#xff1f;Binder如何处理发送请求与接收请求?Binder是通过什么方式来进行内存映射的&…

linux入门到精通-第十九章-libevent(开源高性能事件通知库)

目录 参考什么是libevent应用核心实现libevent的地基event_base等待事件产生&#xff0c;循环监听event_loop退出循环监听event_base_loopexit创建事件工作流程 安装一&#xff08;源码安装&#xff0c;推荐&#xff09;现在源码配置编译安装验证安装 安装二&#xff08;可能因…

KingbaseES数据库merge语法

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 MERGE 语句是一种用于数据操作的 SQL 语句&#xff0c;它能够根据指定的条件将 INSERT、UPDATE 和 DELETE 操作结合到单个语句中。其主要作用是在目标表和源表之间进行数据比较和同步&#xff0c;根据条件的匹配情况来…

RAG概述(二):Advanced RAG 高级RAG

目录 概述 Advanced RAG Pre-Retrieval预检索 优化索引 增强数据粒度 粗粒度 细粒度 展开说说 优化索引 Chunk策略 Small2Big方法 元数据 引入假设性问题 对齐优化 混合检索 查询优化 查询扩展 查询转换 Post-Retrieval后检索 参考 概述 Native RAG&#…

springboot vue 开源 会员收银系统 (4) 门店模块开发

前言 完整版演示 前面我们对会员系统 springboot vue 开源 会员收银系统 (3) 会员管理的开发 实现了简单的会员添加 下面我们将从会员模块进行延伸 门店模块的开发 首先我们先分析一下常见门店的管理模式 常见的管理形式为总公司 - 区域管理&#xff08;若干个门店&#xff…

C语言 | Leetcode C语言题解之第113题路径总和II

题目&#xff1a; 题解&#xff1a; int** ret; int retSize; int* retColSize;int* path; int pathSize;typedef struct {struct TreeNode* key;struct TreeNode* val;UT_hash_handle hh; } hashTable;hashTable* parent;void insertHashTable(struct TreeNode* x, struct Tr…

C++干货 --类和对象(二)

前言&#xff1a; 上文中&#xff0c;我们介绍了类这一重要知识点&#xff0c;包括为什么要有类、类的使用方法、封装、以及对象实例化。详情可以去看我的文章&#xff1a;写文章-CSDN创作中心C干货 --类和对象(一)-CSDN博客写文章-CSDN创作中心 这篇文章&#xff0c;我们简单…

我学会了用插件来辅助PostgreSQL,可拷,很刑!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

【蓝桥杯省赛真题44】python计算N+N的值 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

目录 python计算NN的值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python计算NN的值 第十四届蓝桥杯青少年组python省赛真题 一、题目要求…

【教学类-58-05】黑白三角拼图05(2-10宫格,每个宫格随机1张-6张,带空格纸,1页3张黑白3张白卡)

背景需求&#xff1a; 【教学类-58-04】黑白三角拼图04&#xff08;2-10宫格&#xff0c;每个宫格随机1张-6张&#xff0c;带空格纸&#xff0c;1页6张黑白&#xff0c;1张6张白卡&#xff09;-CSDN博客文章浏览阅读582次&#xff0c;点赞16次&#xff0c;收藏3次。【教学类-58…

Mac安装pytorch

先下载 Anaconda | The Operating System for AI 网速慢&#xff0c;用中国大陆镜像&#xff1a;NJU Mirror 之前装python3时用的是pip3&#xff0c;这里说一下这pip与conda的区别 Conda和pip都是Python包管理工具&#xff0c;用于安装和管理Python包 包管理范围&#xff1a…

汽车数据应用构想(一)

自从电动汽车GB/T32960标准颁布&#xff0c;要求所有电动汽车必须上传数据开始&#xff0c;各车厂就开始花费大量的人力物力&#xff0c;用于数据的上传与存储。同时随着智能化、网联化的趋势&#xff0c;不断丰富上传数据的内容与数量。数据已成为车厂的重要资产&#xff0c;但…

微服务:eureka的搭建,以及服务注册、服务发现、负载均衡

eureka 搭建 新建一个Module,maven项目&#xff0c;导入依赖。 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><…

24年湖南教资认定即将开始,别被照片卡审!

24年湖南教资认定即将开始&#xff0c;别被照片卡审&#xff01;

Jenkins 流水线(Pipeline)详解

大家好&#xff0c;Jenkins 流水线&#xff08;Pipeline&#xff09;是一种可编排的持续集成和交付&#xff08;CI/CD&#xff09;方法&#xff0c;它以代码的方式定义整个软件开发过程中的构建、测试和部署流程。接下来就跟大家分享一下Jenkins 流水线&#xff08;Pipeline&am…