/*
* File name : maze_dual_path.cpp
* Function : 迷宫多条路径求解 C++实现
* Created on : 2016年5月14日
* Author : beijiwei@qq.com
* Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。
任何单位和个人不经本人允许不得用于商业用途
说明:
1.第一条通路打通前,将不能到达的节点变为墙(0),分叉点变为 -1
2.第一次到达出口后,开始逆推,判断节点是否在打通的回路上,若是则 path增加1,遇到分叉点,分拆点变为1
3.本程序只能求 path 总数,待优化
*/
#include <cstdio>
#include <iostream>
#pragma warning(disable:4996)
using namespace std;
typedef struct {
int data;
int x;
int y;
bool mark;
}Spot;
#define SIZE 10
Spot sarray[SIZE][SIZE];
Spot cross_store[20];
int cross_cursor = -1;
void find(int x, int y, int fx, int fy);
int path_count = 0;
int main(int argc, char** argv)
{
int M = 0, N = 0;
freopen("input.txt", "r", stdin);
cin >> M >> N;
for (int i = 0; i<M; i++)
for (int j = 0; j < N; j++) {
cin >> sarray[i][j].data; // get input data
sarray[i][j].x =
经典算法<一>迷宫问题 4.多条路径 求路径条数求解 C++实现
最新推荐文章于 2023-05-13 16:53:52 发布
这是一个C++程序,用于解决迷宫中多条路径的问题。通过输入的迷宫数据,程序能计算出从起点到终点的不同路径数量。程序首先将不可达节点标记为墙,然后使用深度优先搜索找到第一条路径,之后通过逆向遍历来统计路径总数。
摘要由CSDN通过智能技术生成