綿密プラス迷路トピック検索

トピック:2次元配列を定義します:
INT迷路[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を>
std名前空間を使用しました。
BOOL G [10] [10]、VIS [10] [10]。
int型のD [5] = {-1,0,1,0、-1}。
INTのN、M、NX、NY、EX、EY、CNT。
ボイドDFS(int型のx、int型のY){
 IF(X == EX && Y == EY){
  CNT ++。
  返します。
 }
 (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]が真=。
   DFS(L、R)。
   VIS [L] [R] = FALSE; //回溯
  }
 }
 リターン。
}
int型のmain(){
 int型のT、ZX、ZY。
 N = 4、M = 4。
 NX = 0、NY = 0; EX = 4; EY = 4。

 G [0] [1] trueに=、
 G trueに= [1] [1];
 G trueに= [1] [3];
 G trueに= [3] [1];
 Gは、[3] [2] trueに=。
 G trueに= [3] [3];
 G trueに= [4] [3];
 DFS(NX、NY);
 COUT << CNT、                  どのくらいの出力線//
 0を返します。
}

おすすめ

転載: www.cnblogs.com/QingyuYYYYY/p/11618559.html