題目
description
input
第一行輸入兩個整數 n(1 ≤ n ≤ 11), m(1 ≤ m ≤ 11).表示迷宮的行和列。
然後有乙個 n × m 的地圖,地圖由'.'、'#'、's'、'e'這四個部分組成。'.'表示可以通行的路,'#'表示迷宮的牆,'s'表示起始點,'e'表示終點。
output
輸出乙個整數,表示從's'到達'e'的所有方案數。
sample input 1
5 5s####
.####
.####
.####
....e
sample output 1
1
一看這種關於迷宮的題,十有**都是深搜(這不廢話嗎?)。
所以就開始dfs的老套路,4個方向輪番擴充套件,再把方案數加到一起,輸出就行了。
話不多說,上**:
#include using namespace std;
string mp[100];
int n,m,tx,ty,sx,sy;
int dir[4][2]=,,,};
bool in(int x,int y)
if(mp[i][j]=='e')
} }
cout << dfs(sx,sy);
return 0;
}
dp迷宮方案數
帕秋莉掌握了一種木屬性魔法 這種魔法可以生成一片森林 類似於迷陣 但一次實驗時,帕秋莉不小心將自己困入了森林 帕秋莉處於地圖的左下角,出口在地圖右上角,她只能夠向上或者向右行走 現在給你森林的地圖,保證可以到達出口,請問有多少種不同的方案 答案對2333取模 第一行兩個整數m n表示森林是m行n列 ...
C 編寫的棧解迷宮程式
檔名 maze.cpp by leon on nov 17th,2006 說明 本程式以迷宮問題進行演示,了解棧和鍊錶的資料結構.執行過程 由於未詳細設計演算法,故地圖較簡單 演示找到出口路徑的過程.主要演算法思想 1.初始化迷宮,構造輔助執行棧和結果鍊錶 2.從入口開始 do else else ...
棧的應用 DFS解迷宮問題
深度優先搜尋dfs求解迷宮問題 找到迷宮的可行路徑的座標,這是乙個搜尋遍歷問題。實現思路 可行的路徑儲存在路徑向量p中,從當前點尋找可行方向,如果可行則next入棧,不行則出棧退回前一點。搜尋可行路徑的 while p.empty 下乙個點 p.back direction if maze next...