码迷,mamicode.com
首页 > 其他好文 > 详细

迷宫 加题目 深入搜索

时间:2019-10-02 22:39:56      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:style   oid   out   main   turn   stream   表示   space   cout   

题目:定义一个二维数组:
int maze[5][5] = {
 0, 1, 0, 0, 0,
 0, 1, 0, 1, 0,
 0, 0, 0, 0, 0,
 0, 1, 1, 1, 0,
 0, 0, 0, 1, 0,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角右下角的路线条数。

代码
#include <iostream>
#include <cstdio>
using namespace std;
bool G[10][10],VIS[10][10];
int d[5]= {-1,0,1,0,-1};
int n,m,nx,ny,ex,ey,CNT;
void dfs(int x,int y) {
 if (x ==ex&&y ==ey) {
  CNT++;
  return;
 }
 for(int k=0; k<4; k++) {
  int l=x+d[k];
  int r=y+d[k+1];
  if (l>=0&&r>=0&&l<=n&&r<=m&&!G [l][r]&&!VIS [l][r]) {       //注意起始位置为(0,0),
   VIS [l][r]=true;
   dfs (l,r);
   VIS [l][r]=false;  //回溯
  }
 }
 return;
}
int main () {
 int t,zx,zy;
 n=4;m=4;
 nx=0;ny=0;ex=4;ey=4;
 G[nx][ny]=0;
 G[0][1]=true;
 G[1][1]=true;
 G[1][3]=true;
 G[3][1]=true;
 G[3][2]=true;
 G[3][3]=true;
 G[4][3]=true;
 dfs (nx,ny);
 cout<<CNT;                 //输出多少路线
 return 0;
}

迷宫 加题目 深入搜索

标签:style   oid   out   main   turn   stream   表示   space   cout   

原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11618559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!