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

牛牛走迷宫【牛客tracker 每日一题】

牛牛走迷宫时间限制1秒 空间限制256M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述牛牛周末去了游乐园走迷宫。这是一个n ∗ m n*mn∗m大小的01 0101迷宫0 00表示这个位置可以走1 11表示有障碍物不能。走。现在牛牛在起点( 1 , 1 ) (1,1)(1,1),他想要走到终点( n , m ) (n,m)(n,m)。并且如果他能够走到终点的话他想要知道自己是怎么走到终点的。如果可以走到终点因为牛牛比较懒他会先保证走的步数最少又因为牛牛是个追求完美的人如果有多条路径步数一样他会选择走字典序最小的那条。数据保证起点和终点都是0输入描述第一行输入两个数n nn和m mm表示n ∗ m n*mn∗m的迷宫大小。( 2 ≤ n 、 m ≤ 500 ) (2≤n、m≤500)(2≤n、m≤500)接下来n nn行每行m mm个字符字符为0 00或者1 110 00表示可以走1 11表示不能走。输出描述如果牛牛不能走到终点请输出 − 1 -1−1,如果可以走到终点第一行请输出牛牛的最小步数k kk。接下来一行输出一个长度为k的字符串(仅包含′ D ′ 、 ′ L ′ 、 ′ R ′ 、 ′ U ′ D、L、R、U′D′、′L′、′R′、′U′)表示牛牛的路径。(D DD表示向下L LL表示向左R RR表示向右U UU表示向上)示例1输入2 2 01 00输出2 DR说明先向下走再向右走解题思路本题核心是反向广度优先搜索(BFS) 正向贪心遍历同时满足最短路径与字典序最小的双重要求。常规正向BFS难以兼顾字典序规则因此从终点( n , m ) (n,m)(n,m)反向遍历迷宫预处理出每个位置到终点的最短距离保证路径步数最少。随后从起点( 1 , 1 ) (1,1)(1,1)出发严格按照D(下)、L(左)、R(右)、U(上)的字典序优先级检查相邻位置优先选择距离减1的合法点移动逐步拼接路径。若起点无法到达终点则输出 -1否则输出路径长度与方向字符串。算法时间复杂度O ( n m ) O(nm)O(nm)完美适配n , m ≤ 500 n,m≤500n,m≤500的数据规模。总结核心逻辑反向BFS预处理最短距离正向按字典序贪心选路同时满足最短步数、最小字典序。关键操作终点反向BFS计算距离、按指定顺序遍历方向、路径动态拼接。效率保障线性遍历网格无冗余计算高效处理题目最大规模的迷宫。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N505;constll INF1e9;ll n,m;ll d[N][N];charmat[N][N];constll dir[]{1,0,-1,0,1};voidsolve(){cinnm;for(ll i1;in;i)for(ll j1;jm;j){cinmat[i][j];d[i][j]INF;}d[n][m]0;queuearrayll,2Q;Q.push({n,m});while(Q.size()){auto[x,y]Q.front();Q.pop();for(ll i0;i4;i){ll nxxdir[i],nyydir[i1];if(nx1nxnny1nymd[nx][ny]INFmat[nx][ny]0){d[nx][ny]d[x][y]1;Q.push({nx,ny});}}}if(d[1][1]INF){cout-1\n;return;}ll x1,y1;string path;while(x!n||y!m){if(xnd[x1][y]d[x][y]-1)x,path.push_back(D);elseif(y1d[x][y-1]d[x][y]-1)y--,path.push_back(L);elseif(ymd[x][y1]d[x][y]-1)y,path.push_back(R);elseif(x1d[x-1][y]d[x][y]-1)x--,path.push_back(U);}coutpath.size()\n;coutpath\n;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll T1;while(T--)solve();return0;}
http://www.gsyq.cn/news/1360977.html

相关文章:

  • 《Java语言实践》课程设计——个人健康财务助手
  • 单曲循环
  • MATLAB改进的前推回代法求解低压配电网潮流附Matlab代码
  • AI工作站选型核心:数据流协同与硬件匹配逻辑
  • AI技术落地情报简报:面向执行层的模型选型与Prompt工程实战
  • 美国联邦AI资助逻辑:问题驱动型资金如何塑造技术路线
  • AI技术解析的底线:只拆解真实可验证的项目
  • 2026年抖音去水印工具实测排行榜:这5个方法最好用,第一名免费且秒出结果 - 科技热点发布
  • Go从零手写神经网络:纯标准库实现全连接BP网络
  • AI肖像生成的技术边界与伦理挑战
  • 大模型MoE架构揭秘:参数量≠实际计算量
  • AI Agent Runtime 正在 commoditize:从沙箱到策略的价值迁移
  • Mythos模型:AI原生攻防时代的零日漏洞自动化引擎
  • RL调度+知识图谱+模块化Agent:构建确定性AI系统架构
  • 在Hermes Agent中自定义Provider并接入Taotoken大模型服务的完整步骤
  • 生产级机器学习服务架构:FastAPI+Triton工程实践
  • Mythos门控模型:可编程AI能力与可信推理架构
  • 激活函数、损失函数与优化算法:神经网络三大核心组件协同原理
  • 2026年阿里云OpenClaw/Hermes Agent配置Token Plan怎么部署看这
  • DownKyi专业指南:一站式解决B站8K超高清视频下载需求
  • 黄金数据集在 Harness 评估中的作用
  • Early Stopping原理与工业级实现:防止过拟合的关键训练策略
  • DropBlock结构化正则化:解决CNN卷积层过拟合的核心原理与实战
  • GDPval:用劳动力市场价格评估AI真实工作价值
  • 掌握Harness Engineering,让你的大模型听话又高效!
  • Triton模型服务化:从Notebook到高可用生产环境的实战指南
  • 对比一圈后 AI智能降重工具深度测评与推荐
  • 2026年AI写作辅助平台实测排行,哪款真正适合一站式撰稿?
  • 从零搭建基础模型:预训练实战中的数据、架构与规模化陷阱
  • Sabaki围棋软件终极指南:从入门到精通的完整教程