发布时间:2026/8/25 14:21:42
Kimi    LeetCode LCP 31. 变换的迷宫 Rust实现 以下是 LCP 31. 变换的迷宫 的 Rust 实现采用 BFS 状态压缩 的思路参考了 C 题解的状态设计 。---解题思路状态设计f[time][x][y][scroll_state] 表示在时刻 time 位于 (x, y)、卷轴使用状态为 scroll_state 时的最短步数。状态值 含义0 未使用任何卷轴1 只使用了临时消除术2 只使用了永久消除术3 两个卷轴都使用了关键细节- 每时刻可以上下左右移动一步或停留原地共 5 种选择- 临时消除术仅让下一时刻的指定位置变为空地用一次后消失- 永久消除术将指定位置永久变为空地需要记录该位置坐标 (px, py)后续所有时刻经过该位置都视为空地- 只要在迷宫变化结束前含最后时刻到达终点 (n-1, m-1) 即算成功---Rust 代码rustuse std::collections::VecDeque;struct Solution;impl Solution {pub fn escape_maze(maze: VecVecString) - bool {let layers maze.len();if layers 0 {return false;}let rows maze[0].len();if rows 0 {return false;}let cols maze[0][0].len();// 五个移动方向右、左、下、上、停留const DX: [i32; 5] [0, 0, 1, -1, 0];const DY: [i32; 5] [1, -1, 0, 0, 0];// 卷轴使用状态const NONE_USED: usize 0; // 未使用任何卷轴const ONLY_TEMP: usize 1; // 只使用了临时消除术const ONLY_PERM: usize 2; // 只使用了永久消除术const TEMP_PERM: usize 3; // 两个卷轴都使用了const INF: i32 i32::MAX / 2;/// 状态值记录到达该状态的步数和永久消除的位置#[derive(Clone, Copy)]struct StateVal {d: i32, // 到达该状态的步数px: i32, // 永久消除位置的 x 坐标-1 表示没有使用永久消除术py: i32, // 永久消除位置的 y 坐标-1 表示没有使用永久消除术}// DP 数组f[layer][row][col][scroll_state]let mut f: VecVecVecVecStateVal vec![vec![vec![vec![StateVal { d: INF, px: -1, py: -1 }; 4];cols];rows];layers];// BFS 队列存储 (时刻, 行, 列, 卷轴状态)let mut q: VecDeque(usize, usize, usize, usize) VecDeque::new();// 初始状态时刻 0 在起点 (0, 0)未使用任何卷轴f[0][0][0][NONE_USED] StateVal { d: 0, px: -1, py: -1 };q.push_back((0, 0, 0, NONE_USED));while let Some((c_layer, c_x, c_y, c_sc)) q.pop_front() {let c_opt f[c_layer][c_x][c_y][c_sc];let next_layer c_layer 1;// 下一时刻超出迷宫变化范围无法继续移动if next_layer layers {continue;}for dir in 0..5 {let nx c_x as i32 DX[dir];let ny c_y as i32 DY[dir];// 边界检查if nx 0 || nx rows as i32 || ny 0 || ny cols as i32 {continue;}let nx nx as usize;let ny ny as usize;// 检查下一时刻该位置是否是空地let next_is_empty maze[next_layer][nx].as_bytes()[ny] b.;// 检查是否是永久消除的位置永久消除后该位置始终可通行let is_perm_pos (c_sc ONLY_PERM || c_sc TEMP_PERM) c_opt.px nx as i32 c_opt.py ny as i32;if next_is_empty || is_perm_pos {// 该位置可通行卷轴状态保持不变if c_opt.d 1 f[next_layer][nx][ny][c_sc].d {f[next_layer][nx][ny][c_sc] StateVal {d: c_opt.d 1,px: c_opt.px,py: c_opt.py,};q.push_back((next_layer, nx, ny, c_sc));}continue;}// 下一时刻该位置是陷阱考虑使用卷轴// 状态 1只用临时可以再用永久消除术 - 状态 3if c_sc ONLY_TEMP {if c_opt.d 1 f[next_layer][nx][ny][TEMP_PERM].d {f[next_layer][nx][ny][TEMP_PERM] StateVal {d: c_opt.d 1,px: nx as i32, // 永久消除当前陷阱位置py: ny as i32,};q.push_back((next_layer, nx, ny, TEMP_PERM));}}// 状态 2只用永久可以再用临时消除术 - 状态 3if c_sc ONLY_PERM {if c_opt.px nx as i32 c_opt.py ny as i32 {// 当前位置已被永久消除直接通行前面已处理此处为保险if c_opt.d 1 f[next_layer][nx][ny][c_sc].d {f[next_layer][nx][ny][c_sc] StateVal {d: c_opt.d 1,px: c_opt.px,py: c_opt.py,};q.push_back((next_layer, nx, ny, c_sc));}} else {// 使用临时消除术消除当前陷阱进入状态 3if c_opt.d 1 f[next_layer][nx][ny][TEMP_PERM].d {f[next_layer][nx][ny][TEMP_PERM] StateVal {d: c_opt.d 1,px: c_opt.px,py: c_opt.py,};q.push_back((next_layer, nx, ny, TEMP_PERM));}}}// 状态 0都没用可以使用临时或永久消除术if c_sc NONE_USED {// 使用永久消除术 - 状态 2if c_opt.d 1 f[next_layer][nx][ny][ONLY_PERM].d {f[next_layer][nx][ny][ONLY_PERM] StateVal {d: c_opt.d 1,px: nx as i32,py: ny as i32,};q.push_back((next_layer, nx, ny, ONLY_PERM));}// 使用临时消除术 - 状态 1if c_opt.d 1 f[next_layer][nx][ny][ONLY_TEMP].d {f[next_layer][nx][ny][ONLY_TEMP] StateVal {d: c_opt.d 1,px: c_opt.px,py: c_opt.py,};q.push_back((next_layer, nx, ny, ONLY_TEMP));}}}}// 检查在任意时刻、任意卷轴状态下是否到达终点for layer in 0..layers {for sc in 0..4 {if f[layer][rows - 1][cols - 1][sc].d ! INF {return true;}}}false}}---复杂度分析- 时间复杂度O(T \times N \times M \times 4 \times 5)其中 T 为时刻数N \times M 为迷宫大小4 为卷轴状态数5 为移动方向数- 空间复杂度O(T \times N \times M \times 4)用于存储 DP 状态数组和 BFS 队列---下载文件[lcp31_escape_maze.rs](sandbox:///mnt/agents/output/lcp31_escape_maze.rs)

相关新闻

2026/8/25 14:21:42

Oracle 19c RAC登录风暴引发library cache lock生产故障分析

故障环境为 Exadata 一体机 Oracle 19.9 RAC,出现部分业务用户无法连接数据库、其他用户登录正常的现象,本文完整还原故障现象、排查思路、内核 Bug 根因、解决方案。一、故障现象 凌晨 01:45,生产数据库收到异常告警短信,告警等待…

2026/8/25 14:21:42

地狱般的三天

周五感觉嗓子有点不舒服,没有太当回事。周六进山去玩,找寻云台天瀑的源头,登台阶出了一身汗,在山里温度明显低,汗落了之后,身体发凉,又坐摩托车冲了风,回到家就感冒了。这一次有豆包…

2026/8/25 16:22:12

ASP项目实战:从环境搭建到功能测试的完整指南

这次我们来看一个名为“赛博多娜”的项目,它不是一个AI模型,而是一个用ASP技术实现的、带有“家具装修”主题的Web应用开发周报。从标题和有限的材料来看,这是一个技术分享或项目进度记录,核心是展示如何使用ASP(Activ…

2026/8/25 16:22:12

从零构建.NET全栈应用:ASP.NET Core MVC与EF Core实战教程

最近在带新人做项目时,发现很多刚接触 .NET 全栈开发的同学,面对 C#、ASP.NET Core、EF Core、SQL Server 这一套技术栈,常常感到无从下手。环境搭建、项目结构、前后端交互、数据库操作,每一步都可能遇到意想不到的坑。本文将以一…

2026/8/25 16:22:12

用Python处理数据分析:实战项目复盘

抛开教科书式的“数据分析流程”,真实世界里的Python实战项目,总会在你最意想不到的地方给你一记闷棍。这份复盘不打算教你函数语法,而是完整回放一次从需求混沌到交付惊魂的全过程,记录下那些被数据噪音掩盖的决策瞬间和栽过的坑…

2026/8/25 16:22:12

C#全栈开发实战:.NET 10+ASP.NET Core MVC+EF Core+SQL Server+Bootstrap

这次我们来看一个面向新手的全栈技术栈组合:C# .NET 10 ASP.NET Core MVC EF Core SQL Server 2025 Bootstrap。这套组合不是某个具体的开源项目,而是一个经过验证的、能让你从零开始构建现代Web应用的完整技术方案。它的核心价值在于,将…

2026/8/25 16:22:12

Codex与Atomic Bot:云端AI后台任务服务的核心能力与应用实践

这次我们来看一个 Codex 上线 Atomic Bot 的消息。简单说,这是一个能让 AI 任务在云端后台持续运行的服务。如果你经常需要处理一些耗时的 AI 任务,比如批量推理、长文本处理,或者希望自己的应用能 7x24 小时调用 AI 能力而不必担心本地机器关…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…