DFS求起点到终点最短路径,手动输入地图,5行4列,地图如下,起点(1,1)终点(4,3) 1是障碍 0是通路
来源:互联网 发布:部落战争mac电脑版 编辑:程序博客网 时间:2024/05/19 19:59
//DFS求起点到终点最短路径,手动输入地图,5行4列,地图如下,起点(1,1)终点(4,3) 1是障碍 0是通路//5 4//0 0 1 0//0 0 0 0//0 0 1 0//0 1 0 0//0 0 0 1//1 1 4 3#include <stdio.h>#include <iostream>#include <string.h>#include <math.h>#include <cstdlib>#include <algorithm>using namespace std;int n,m;int a[100][100]; //地图大小int b[100][100]; // 标记 走过路int sx,sy,ex,ey; //起点(sx,sy)终点(ex,ey)int minx=99999999;int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};void dfs(int x ,int y ,int step){ if(x==ex&&y==ey){ //求最短路径 if(minx>step){ minx=step; } return; } for(int k=0;k<4;k++){ //四个方向 int tx,ty; tx=x+next[k][0]; ty=y+next[k][1]; if(tx<1||tx>n||ty<1||ty>m){ //判断边界 continue; } if(a[tx][ty]==0&&b[tx][ty]==0){ //判断障碍 是否走过 b[tx][ty]=1; dfs(tx,ty,step+1); b[tx][ty]=0; } } return;}int main(){ // memset(b,0,sizeof(b)); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); //地图初始化 } } scanf("%d%d%d%d",&sx,&sy,&ex,&ey); //起点(sx,sy)终点(ex,ey) b[sx][sy]=1; dfs(sx,sy,0); printf("%d",minx); return 0;}
0 0
- DFS求起点到终点最短路径,手动输入地图,5行4列,地图如下,起点(1,1)终点(4,3) 1是障碍 0是通路
- 迷宫的最短路径(BFS,起点到终点)
- 终点亦是起点
- Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)
- 5X5迷宫,求起点和终点的最短路径以及最短路径个数(百分数)
- 裁员,是终点也是起点
- 2017 终点亦是起点
- 最短路径:HDU2006-一个人的旅行(多个起点,多个终点)
- hdu 2680 最短路径 多起点一终点问题
- 百度地图接口,根据起点和终点做路径规划
- Dijkstra算法(单源最短路径,单源分别是终点和起点)
- 用Java实现Dijkstra输出指定起点到终点的最短路径
- hdu1026(bfs求起点到终点最短距离)
- hdu 4240 Route Redundancy(求起点到终点的路径中流量最大的路径的流量)
- poj-3268 Silver Cow Party (最短路-spfa-求到同一起点,同一终点的最短路)
- 终点-起点
- 终点 起点
- (hdu step 4.2.4)A strange lift(求从起点到终点的最小步数,限制条件是:在一维的情况下)
- 不用加减乘除做加法
- Android 加载图片传到另一个页面 关于回调
- [BZOJ1602][Usaco2008 Oct]牧场行走(LCA)
- Redis 集群的合纵与连横
- SDAU课程练习2 1019
- DFS求起点到终点最短路径,手动输入地图,5行4列,地图如下,起点(1,1)终点(4,3) 1是障碍 0是通路
- hdoj 素数回文 1431 (模拟)
- E Cheerleaders (UVA 11806)
- 第五周项目22-分数类的雏形
- [JAVA]有关比较器(Comparator接口)的用法及对象数组排序问题
- TCP建立连接和断开连接过程
- 管理文件
- 4 Java基础语法(switch语句,循环语句(for,while),控制跳转语句(break,return,continue))
- hdu 2923 Einbahnstrasse 最短路spfa+map容器