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

HJ161 走一个大整数迷宫

题目题解(10)讨论(4)排行中等 通过率40.12% 时间限制1秒 空间限制256M知识点广度优先搜索(BFS)校招时部分企业笔试将禁止编程题跳出页面为提前适应练习时请使用在线自测而非本地IDE。描述给定一个 n×mn×m 的矩阵迷宫其中第 ii 行第 jj 列的格子权值为ci,jai,j×p2bi,jci,j​ai,j​×p2bi,j​。LH 起始位于 (1,1)(1,1)出口位于 (n,m)(n,m)。迷宫配有一个计数器初始值为 c1,1c1,1​。在任意时刻若计数器的值满足 counter≡0(mod(p−1))counter≡0(mod(p−1))且 LH 身处出口 (n,m)(n,m)大门即刻打开LH 得以逃离。每经过 11 秒LH 必须向上、下、左、右四个方向中的某一方向移动一步不得停留也不得走出迷宫。假设 LH 从 (i,j)(i,j) 移动到 (i′,j′)(i′,j′)则计数器会累加 ci′,j′ci′,j′​。请计算 LH 最快需要多少秒才能逃离若无论如何都无法逃离则输出 −1−1。输入描述输入共三部分∙ ∙第一行输入三个整数 n,m,p(1≦n,m≦10; 2≦p≦104)n,m,p(1≦n,m≦10; 2≦p≦104)∙ ∙接下来 nn 行每行 mm 个整数构成矩阵 ai,jai,j​∙ ∙再接下来 nn 行每行 mm 个整数构成矩阵 bi,jbi,j​范围均为 0≦ai,j,bi,j≦1060≦ai,j​,bi,j​≦106。输出描述输出一个整数代表最短逃离时间若无法逃离输出 −1−1。示例1输入3 3 10 1 2 3 0 1 4 0 0 0 1 0 0 0 0 1 0 1 0复制输出6复制说明C[1002030010400000]C⎣⎡​10000​20100​304000​⎦⎤​。 第一秒从 (1,1)(1,1) 走到 (1,2)(1,2)计数器的值为 120120。 第二秒从 (1,2)(1,2) 走到 (1,3)(1,3)计数器的值为 150150。 第三秒从 (1,3)(1,3) 走到 (1,2)(1,2)计数器的值为 170170。 第四秒从 (1,2)(1,2) 走到 (2,2)(2,2)计数器的值为 180180。 第五秒从 (2,2)(2,2) 走到 (3,2)(3,2)计数器的值为 180180。 第六秒从 (3,2)(3,2) 走到 (3,3)(3,3)计数器的值为 180180是 99 的倍数逃出迷宫。#include iostream #include vector #include queue using namespace std; struct State { int x, y, rem; }; int main() { int n, m, p; cin n m p; vectorvectorint a(n, vectorint(m)); for (int i 0; i n; i) { for (int j 0; j m; j) { cin a[i][j]; } } // b矩阵在计算余数时是不需要的但仍需读入以消耗输入 vectorvectorint b(n, vectorint(m)); for (int i 0; i n; i) { for (int j 0; j m; j) { cin b[i][j]; } } if (p 1) { // p-1 0, 无法取模 cout -1 endl; return 0; } int mod p - 1; vectorvectorvectorint dist(n, vectorvectorint(m, vectorint(mod, -1))); queueState q; int start_rem a[0][0] % mod; dist[0][0][start_rem] 0; q.push({0, 0, start_rem}); int dx[] {0, 0, 1, -1}; int dy[] {1, -1, 0, 0}; while (!q.empty()) { State curr q.front(); q.pop(); int t dist[curr.x][curr.y][curr.rem]; for (int i 0; i 4; i) { int nx curr.x dx[i]; int ny curr.y dy[i]; if (nx 0 nx n ny 0 ny m) { int next_rem (curr.rem a[nx][ny]) % mod; if (dist[nx][ny][next_rem] -1) { dist[nx][ny][next_rem] t 1; q.push({nx, ny, next_rem}); } } } } cout dist[n - 1][m - 1][0] endl; return 0; }

相关文章:

HJ161 走一个大整数迷宫

题目题解(10)讨论(4)排行 中等 通过率:40.12% 时间限制:1秒 空间限制:256M 知识点广度优先搜索(BFS) 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 …...

OpenClaw备份策略:Qwen3-14B镜像环境快速迁移与恢复方案

OpenClaw备份策略:Qwen3-14B镜像环境快速迁移与恢复方案 1. 为什么需要备份OpenClaw环境? 上周我的开发机突然遭遇硬盘故障,导致辛苦配置的OpenClaw环境全部丢失。在经历了8小时的重装和调试后,我意识到必须建立一套可靠的备份方…...

私人运行大型语言模型

原文:towardsdatascience.com/running-large-language-models-privately-a-comparison-of-frameworks-models-and-costs-ac33cfe3a462?sourcecollection_archive---------0-----------------------#2024-10-30 框架、模型与成本比较 https://medium.com/robert.co…...

OpenClaw飞书机器人配置:Qwen3.5-9B-AWQ-4bit对话触发图片分析

OpenClaw飞书机器人配置:Qwen3.5-9B-AWQ-4bit对话触发图片分析 1. 为什么选择OpenClaw飞书Qwen3.5组合? 去年我负责一个小型研发团队的知识管理时,发现成员们经常在飞书群聊里分享截图和技术文档照片,但后续讨论需要手动输入大量…...

Arduino/ESP32轻量级协作式任务调度库

1. 项目概述 MycilaTaskManager 是一个专为 Arduino/ESP32 平台设计的轻量级、高可配置性任务调度管理库。它并非传统意义上的实时操作系统(RTOS)内核替代品,而是构建在 FreeRTOS 基础之上的 协作式任务抽象层 ,其核心设计哲学是…...

PCB设计中数字地与模拟地的区分与处理技巧

1. 数字地与模拟地的本质区别在PCB设计中,地线(GND)是电路参考零电位的公共导体。但为什么工程师们要煞费苦心地把"地"分为数字地和模拟地呢?这得从两种电路的本质特性说起。数字电路的工作特点是突变的开关状态。以常见…...

Adafruit GFX图形库:嵌入式显示驱动的分层架构与实践

1. Adafruit GFX 图形库深度解析:嵌入式显示驱动的基石架构 Adafruit GFX 库是 Adafruit 全系列显示设备驱动的统一图形抽象层,其核心定位并非直接操控硬件,而是为上层应用提供一套与具体显示控制器解耦的、标准化的二维图形原语接口。该库采…...

Agent 的能力体系

提示词及其能力边界 在将 Agent 具体应用到实际的生产环境中之前,人们首先需要弄清楚的是:提示词在这类应用中的作用到底是什么?它的能力边界在哪里?如果我们在这两个问题上的理解出现了偏差,那么后续所有针对 Agent …...

OpenClaw语音控制之使用 Vosk 实现离线语音控制

10.1 Vosk 简介与特性 10.1.1 什么是 Vosk Vosk 是一个离线开源语音识别工具包,基于 Kaldi 语音识别框架开发。它能够在无需网络连接的情况下,为应用程序提供实时、准确的语音识别能力。Vosk 由 Alpha Cephei Inc 开发和维护,采用 Apache 2.0 开源协议,允许在商业和个人项…...

Linux下C程序编译过程详解与GCC工具链使用

1. 从源代码到可执行文件的旅程作为一名在Linux环境下工作多年的开发者,我经常需要深入理解程序从源代码到可执行文件的完整编译过程。这不仅有助于调试复杂问题,还能让我们在性能优化时做出更明智的决策。让我们以一个简单的"Hello World"程序…...

RT-Thread环境搭建与内核开发实战指南

1. RT-Thread体验环境搭建作为一名嵌入式开发者,初次接触RT-Thread时最关心的就是如何快速搭建实验环境。RT-Thread作为一款国产实时操作系统,其优势在于既支持真实硬件平台也兼容虚拟环境,这为学习者提供了极大便利。在实际工作中&#xff0…...

openclaw本地安装包一键安装 集成400+大模型+微信、企业微信、钉钉、飞书图形界面参数,无需复杂配置

前言:作为主打本地化的轻量级 AI 智能体,OpenClaw 凭借本地运行无隐私泄露、零代码一键部署、免费开源无捆绑的核心优势,成为办公党和技术爱好者的效率神器。继 v2.4.1 版本收获大量好评后,OpenClaw v2.60 正式发布,本…...

HCSR04超声波测距库底层实现与嵌入式工程实践

1. HCSR04超声波测距库深度解析:面向嵌入式工程师的底层实现与工程实践1.1 库定位与工程价值HCSR04超声波传感器是嵌入式系统中成本最低、部署最便捷的距离感知方案之一,广泛应用于智能小车避障、液位监测、工业物位检测及IoT环境感知等场景。其核心优势…...

【2026年最新600套毕设项目分享】基于Springboot的克州旅游网站(14322)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot旅游出行指南系统(14321)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

OpenClaw+千问3.5-9B写作辅助:中英文技术文档自动互译

OpenClaw千问3.5-9B写作辅助:中英文技术文档自动互译 1. 为什么需要自动化文档翻译 作为技术文档工程师,我每周都要处理大量中英文技术文档的互译工作。传统工作流需要反复在翻译软件、术语表和Markdown编辑器间切换,不仅效率低下&#xff…...

SH_MLCD_J:Sharp HR-TFT内存液晶驱动库详解

1. 项目概述SH_MLCD_J 是一款专为驱动 Sharp 公司 HR-TFT 系列单色内存液晶显示屏(Monochrome Memory LCD)设计的嵌入式底层图形库。该库被广泛应用于秋月电子等国内元器件分销商所售的 SHARP 原厂模组,典型型号包括 LS013B7DH03、LS027B7DH0…...

4DGL-uLCD-SE:轻量级嵌入式GUI驱动框架

1. 项目概述4DGL-uLCD-SE 是一个面向嵌入式系统设计的轻量级、可移植的图形用户界面(GUI)驱动框架,专为 4D Systems 公司推出的 uLCD 系列智能显示模块(如 uLCD-320GL, uLCD-70DT, uLCD-43PT 等)而构建。该库并非直接操…...

Linux进程信号详解(一):信号快速认识

一、信号快速认识信号(现实生活中):闹钟、红绿灯、上课铃声、狼烟、电话铃声、肚子叫、敲门声、脸色不好 ....1.1 生活中的信号 —— 快递的例子想象你网购了很多商品:你能识别快递:你知道快递员打电话时该怎么处理。即…...

Arduino驱动AY-3-8910 PSG芯片的轻量级音频库

1. 项目概述 MOS Electronics AY-3-8910 Library 是一个面向 Arduino 平台的轻量级驱动库,专为通用仪器(General Instrument)于1978年推出的经典可编程声音发生器(Programmable Sound Generator, PSG)芯片 AY-3-8910 …...

嵌入式差分升级技术解析与实践指南

1. 嵌入式差分升级方案概述在嵌入式设备固件更新领域,差分升级(Delta Update)已经成为解决传统OTA升级痛点的关键技术方案。作为一名长期从事嵌入式开发的工程师,我亲历过多次因固件体积过大导致的升级失败案例,直到采…...

SEO IP 地址对网站排名的重要性是什么

SEO IP 地址对网站排名的重要性是什么 在当前的互联网时代,网站排名直接关系到网站的流量和收益。作为网站运营者,我们都知道搜索引擎优化(SEO)是提升网站排名的关键。而在SEO的诸多因素中,IP地址的作用有时被忽视。S…...

嵌入式硬件设计核心架构与电源系统详解

1. 嵌入式硬件设计核心架构解析嵌入式系统的硬件架构就像一座精心设计的城市,CPU作为市长统筹全局,外围设备则是各个职能部门。这种架构最显著的特点就是硬件可裁剪性——我们可以根据实际需求灵活增删模块,就像城市规划中按需建设不同功能区…...

micro-moustache:嵌入式轻量模板引擎

1. micro-moustache:面向嵌入式系统的轻量级无逻辑模板处理器1.1 设计定位与工程价值micro-moustache 是专为资源受限微控制器(如 Arduino、ESP32、STM32 等)设计的极简 Mustache 模板引擎实现。其核心设计哲学是“功能够用、内存可控、接口直…...

LwEVT:嵌入式轻量级事件管理器设计与实践

1. LwEVT:嵌入式系统轻量级事件管理器深度解析 在资源受限的嵌入式系统中,事件驱动架构(Event-Driven Architecture, EDA)是构建高响应性、低耦合、可维护固件的核心范式。然而,传统RTOS内置的事件组(如Fre…...

嵌入式系统分层架构设计与驱动框架实现

1. 嵌入式系统中的分层架构设计在嵌入式开发领域,我一直坚持一个核心原则:好的代码结构应该像洋葱一样层次分明。以STM32开发为例,很多初学者直接从官方例程入手时,往往会发现应用层代码中混杂着大量硬件相关的头文件引用&#xf…...

python enum

## Python 中的 Any:一个被低估的类型注解工具 在 Python 的类型注解体系里,Any 是一个看似简单,却常常引发误解的特殊类型。很多开发者第一次见到它时,可能会觉得这不过是个“万金油”式的占位符,用来应付那些暂时不想…...

python namedtuple

## Python 中的 Any:一个被低估的类型注解工具 在 Python 的类型注解体系里,Any 是一个看似简单,却常常引发误解的特殊类型。很多开发者第一次见到它时,可能会觉得这不过是个“万金油”式的占位符,用来应付那些暂时不想…...

FreeRTOS消息队列原理与实战应用指南

1. FreeRTOS消息队列核心概念解析消息队列作为FreeRTOS中最核心的通信机制之一,其设计理念源于操作系统中的生产者-消费者模型。在实际嵌入式开发中,我经常用它来解决任务间的数据传递问题。与裸机编程中的全局变量共享不同,消息队列通过内核…...

DS1307实时时钟芯片驱动开发与工程实践指南

1. DS1307实时时钟芯片驱动技术深度解析DS1307是由Maxim Integrated(现为Analog Devices)推出的经典IC接口实时时钟(RTC)芯片,采用SOIC-8封装,工作电压范围2.0V–5.5V,支持-40C至85C工业级温度范…...