【C++题解】1431. 迷宫的第一条出路

问题:1431. 迷宫的第一条出路

类型:深度搜索、回溯、路径打印


题目描述:

已知一 N×N 的迷宫,允许往上、下、左、右四个方向行走,现请你按照左、上、右、下顺序进行搜索,找出第一条从左上角到右下角的路径。

输入:

输入数据有若干行,第一行有一个自然数 N(N≤20),表示迷宫的大小;
其后有 N 行数据,每行有 N 个 0 或 1(数字之间没有空格,0 表示可以通过,1 表示不能通过),用以描述迷宫地图。入口在左上角 (1,1)处,出口在右下角(N,N) 处。
所有迷宫保证存在从入口到出口的可行路径。

输出:

输出数据仅一行,为按照要求的搜索顺序找到的从入口到出口的第一条路径(搜索顺序:左、上、右、下)。

样例:

输入:

4
0001
0100
0010
0110

输出:

(1,1)->(1,2)->(1,3)->(2,3)->(2,4)->(3,4)->(4,4)

在这里插入图片描述


完整代码如下:

#include<bits/stdc++.h> 
using namespace std;
int n,mg[30][30],bj[1000][1000]; 

int  dfs(int x,int y,int k){
	if(x<1||x>n||y<1||y>n||mg[x][y]!=0){
		return k;
	}
	
	bj[k][1]=x;
	bj[k][2]=y;
	mg[x][y]=1;
	
	if(x==n&&y==n){
		//五、输出结果 
		for(int i=1;i<=k;i++){
			cout<<"("<<bj[i][1]<<","<<bj[i][2]<<")";
			if(i!=k){
				cout<<"->";
			}
		}
	}
	//左 
	dfs(x,y-1,k+1); 
	//上
	dfs(x-1,y,k+1);
	//右
	dfs(x,y+1,k+1);
	//下 
	dfs(x+1,y,k+1);
	
	
	
	
}

int main(){
	//一、分析问题
	//已知:N×N 的迷宫,允许往上、下、左、右四个方向行走。 
	//未知:按照左、上、右、下顺序进行搜索,找出第一条从左上角到右下角的路径。
	//关系:深度搜索、回溯

	
	//二、数据定义 

	//三、数据输入
	cin>>n; 
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		for(int j=1;j<=n;j++){
			mg[i][j]=s[j-1]-'0';
		}
	}
	//四、数据计算 
	dfs(1,1,1);


	return 0;	
}

相关推荐

  1. 1432. 走出迷宫最少步数

    2024-06-18 10:18:03       60 阅读
  2. 出现次数超过一半数(c++题解)

    2024-06-18 10:18:03       50 阅读
  3. C组暑假第一次训练题解

    2024-06-18 10:18:03       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-18 10:18:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-18 10:18:03       97 阅读
  3. 在Django里面运行非项目文件

    2024-06-18 10:18:03       78 阅读
  4. Python语言-面向对象

    2024-06-18 10:18:03       88 阅读

热门阅读

  1. 数据仓库之Kappa架构

    2024-06-18 10:18:03       31 阅读
  2. iommu深度剖析虚拟化技术的隐形守护者

    2024-06-18 10:18:03       31 阅读
  3. Unity3D MMORPG加载背包配置表详解

    2024-06-18 10:18:03       32 阅读
  4. 单元的测试

    2024-06-18 10:18:03       23 阅读
  5. SQL server 内连接 左连接 右连接 全连接 语句

    2024-06-18 10:18:03       27 阅读
  6. 静态成员...

    2024-06-18 10:18:03       26 阅读
  7. 架构模式——分层架构

    2024-06-18 10:18:03       34 阅读
  8. MySQL:emoj表情录入

    2024-06-18 10:18:03       26 阅读
  9. 软件测试全面指南:提升软件质量的系统流程

    2024-06-18 10:18:03       26 阅读
  10. Spring Boot高级配置与自定义Starter详解

    2024-06-18 10:18:03       29 阅读