題目
題目背景
迷宮 【問題描述】
給定乙個n*m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和
終點座標,問: 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮
中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。
輸入樣例 輸出樣例
【資料規模】
1≤n,m≤5
題目描述
輸入輸出格式
輸入格式:
【輸入】
第一行n、m和t,n為行,m為列,t為障礙總數。第二行起點座標sx,sy,終點
座標fx,fy。接下來t行,每行為障礙點的座標。
輸出格式:
【輸出】
給定起點座標和終點座標,問每個方格最多經過1次,從起點座標到終點座標的方
案總數。
輸入輸出樣例
輸入樣例#1:
2 2 1
1 1 2 2
1 2輸出樣例#1:
1
一道簡單的dfs。
思路輸入n和m,用乙個二維陣列生成乙個bool型別的圖(省空間),還有t個障礙,for迴圈t次輸入障礙座標直接把陣列[x][y]改為零就把圖生成好了。
dfs如下:
int
dfs(
int x,
int y)
long
long sum=0;
vis[x]
[y]=1;
for(
int i=
0;i<
4;i++)}
vis[x]
[y]=0;
return sum;
}
最後,完整**如下:
#include
using
namespace std;
int n,m,tx,ty,sx,sy;
int dir[4]
[2]=
,,,}
;//擴充套件的4個方向
int mp[10]
[10];
//地圖
boolin(
int x,
int y)
//判斷邊界
int vis[10]
[10];
intdfs
(int x,
int y)
long
long sum=0;
vis[x]
[y]=1;
for(
int i=
0;i<
4;i++)}
vis[x]
[y]=0;
return sum;
}//暴力dfs
intmain()
//生成圖
cout <<
dfs(sx-
1,sy-1)
;//輸出
return0;
}
洛谷 P1605 迷宮
問題描述 給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和 終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮 中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。輸入樣例 輸出樣例 資料規模 1 n,m 5 題目描述 輸入輸...
洛谷 P1605 迷宮
題目背景 迷宮 問題描述 給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和 終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮 中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。輸入樣例 輸出樣例 資料規模 1 n,m 5 ...
洛谷p1605迷宮
迷宮 問題描述 給定乙個n m方格的迷宮,迷宮裡有t處障礙,障礙處不可通過。給定起點座標和 終點座標,問 每個方格最多經過1次,有多少種從起點座標到終點座標的方案。在迷宮 中移動有上下左右四種方式,每次只能移動乙個方格。資料保證起點上沒有障礙。輸入樣例 輸出樣例 資料規模 1 n,m 5 這題是一題...