dfs走迷宫
来源:互联网 发布:淘宝创建店铺流程 编辑:程序博客网 时间:2024/05/22 03:04
import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int[][] bool= new int[50][50]; static int[][] maze= new int[50][50]; static int min=Integer.MAX_VALUE; static int p,q,n,m; //方向 static int[][] dir= { {0,1},//右 {1,0},//下 {0,-1},//左 {-1,0}//上 }; static void dfs(int x,int y,int step){ if(x==p&&y==q){ if(step<min) min=step; //更新最小路径 return; } int tx=0,ty=0; //每个方向都尝试一下 for (int i = 0; i < 4; i++) { tx=x+dir[i][0]; ty=y+dir[i][1]; // 判断坐标是否出界 if(tx>n||ty>m||tx<1||ty<1) continue; //如果没在已经走过的路径上并且是不是障碍物 if(bool[tx][ty]==0&&maze[tx][ty]==0){ bool[tx][ty]=1; dfs(tx,ty,step+1); bool[tx][ty]=0; } } return; } public static void main(String[] args) { n=in.nextInt(); m=in.nextInt(); //创建迷宫 for (int i = 1; i <=n; i++) { for (int j = 1; j <=m; j++) { maze[i][j]=in.nextInt(); bool[i][j]=0; } } //输入起点终点 int start=in.nextInt(); int end =in.nextInt(); p=in.nextInt(); q=in.nextInt(); bool[start][end]=1; dfs(start,end,0); System.out.println(min); }}
阅读全文
0 0
- DFS走迷宫
- 走迷宫(Dfs)
- DFS实现走迷宫
- dfs z走迷宫
- dfs-----走迷宫问题
- dfs走迷宫
- 走迷宫dfs
- DFS- SDUT1269 走迷宫
- dfs走迷宫
- 走迷宫dfs
- DFS走迷宫
- 3752:走迷宫 bfs dfs
- SDUT 走迷宫(DFS)
- sdutoj 2449 走迷宫 (DFS)
- sdut oj2449 走迷宫(DFS)
- 自动走迷宫(DFS)
- 走迷宫——DFS
- SDUT-1269 走迷宫(DFS)
- Swift版找字体名字
- 摘自windbg,当作调试taeget机器的hello word看吧
- PHP实现多图上传预览~(仿微信)
- 酷划锁屏手机赚钱APP的使用经验分享
- SYBASE 常用 sp_configure
- dfs走迷宫
- Android通讯录、城市选择器列表的实现
- HDU 6199 DP
- Centos7 ffmpeg
- 将hdfs上的数据通过MapReduce上传到hbase上
- Android开发FrameLayout动态添加控件位置问题
- monkey.patch_all()处理多线程问题
- Java5
- 方阵