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

【回溯】BISHI83 迷宫问题


思路

求解代码

privatestaticList<int[]>path=newArrayList<>();/** * 主方法,处理输入输出并调用回溯算法 * * @param args 命令行参数 * @throws IOException 可能抛出的IO异常 */publicstaticvoidmain(String[]args)throwsIOException{// 创建输入输出缓冲流BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));PrintWriterout=newPrintWriter(newOutputStreamWriter(System.out));// 读取第一行输入,分割并转换为高度h和宽度wString[]strA=br.readLine().trim().split("\\s+");// 解析网格的高度和宽度inth=Integer.parseInt(strA[0]);intw=Integer.parseInt(strA[1]);// 创建网格数组和访问标记数组int[][]grid=newint[h][w];boolean[][]visited=newboolean[h][w];// 读取网格数据for(inti=0;i<h;i++){// 读取一行输入并分割String[]str=br.readLine().trim().split("\\s+");// 填充网格数据for(intj=0;j<w;j++){grid[i][j]=Integer.parseInt(str[j]);}}// 从起点(0,0)开始回溯backtrack(grid,h,w,0,0,visited);// 输出路径for(int[]pos:path){out.println("("+pos[0]+","+pos[1]+")");}// 刷新并关闭输出流和输入流out.flush();out.close();br.close();}/** * 使用回溯算法在网格中寻找路径 * * @return 如果找到从起点到终点的路径则返回true,否则返回false */privatestaticbooleanbacktrack(int[][]grid,inth,intw,inti,intj,boolean[][]visted){// 检查当前位置是否有效:是否在网格范围内、是否是障碍物、是否已经访问过if(i<0||i>=h||j<0||j>=w||grid[i][j]==1||visted[i][j]){returnfalse;}// 标记当前位置为已访问,并将当前位置添加到路径中visted[i][j]=true;path.add(newint[]{i,j});// 如果当前位置是终点,则返回trueif(i==h-1&&j==w-1){returntrue;}// 定义四个方向:上、下、左、右int[]dx={-1,1,0,0};int[]dy={0,0,-1,1};// 尝试向四个方向移动for(intk=0;k<4;k++){// 递归调用backtrack方法,如果找到路径则返回trueif(backtrack(grid,h,w,i+dx[k],j+dy[k],visted)){returntrue;}}// 如果四个方向都无法继续前进,则回溯:从路径中移除当前位置path.remove(path.size()-1);returnfalse;}
http://www.jsqmd.com/news/422164/

相关文章:

  • 康考迪亚大学研究团队发明了会“不确定“的AI医生
  • 百度架构师亲授:大规模推理的ONNX模型优化全流程(从转换到部署)
  • 每日课后作业
  • 260207
  • 彼得林奇的“家庭股票“在跨代财富传承中的税务规划
  • 基于springboot高校不同专业毕业生就业率统计系统
  • 第20天:模型调优与Pipeline——交叉验证与参数网格搜索 - 2305
  • 每日作业
  • Arrays类
  • 第21天:图计算入门——GraphX与图论基础 - 2305
  • 第22天:GraphX核心抽象——属性图的构建与操作 - 2305
  • Material Design 3 动态布局:自适应界面开发全攻略
  • 第23天:图算法(一)——PageRank与社交网络分析 - 2305
  • 提示工程进度管理总失控?架构师教你「以终为始」计划法,目标更清晰
  • 第24天:图算法(二)——连通分量与三角形计数 - 2305
  • 第25天:Pregel API——自定义图迭代算法 - 2305
  • 第16天:回归算法——线性回归与决策树回归 - 2305
  • OxyPlot小结
  • 第17天:分类算法——逻辑回归与随机森林分类 - 2305
  • 第18天:聚类算法——KMeans与高斯混合模型 - 2305
  • 当 3GPP 拒绝“魔法”:解析 6G 物理层在算力墙与 CSI 开销下的极限内卷
  • 登陆身份认证漏洞补充(login)
  • 孤岛惊魂3设置
  • 品牌词的密度 和 站点要有活人感
  • Docker 新手崩了!镜像删不掉、版本不一致、构建总失败?一篇讲透全流程操作
  • 随机生成canvas参数!
  • P1640 [SCOI2010] 连续攻击游戏 题解
  • OI 之后
  • 想法很多却一事无成?
  • Le Audio PBP协议介绍