題目背景
迷宮 【問題描述】
給定乙個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:
1dfs:
1.把它所有的障礙標記為不能走。
2.朝4個方向搜!。
3.考慮起點或終點是障礙的情況。
4.ac。
const
dx:array [1..4] of integer=(1,0,0,-1);
dy:array [1..4] of integer=(0,1,-1,0);
var a:array [0..6,0..6] of boolean;
ans,x,y,p,q,aa,bb,i,m,n,t:longint;
procedure
dfs(x,y:longint);
var i:longint;
begin
if (a[x,y]=false) or (x<1) or (x>m) or (y<1) or (y>n) then
exit;
if (x=p) and (y=q) then
begin inc(ans); exit; end;
a[x,y]:=false;
for i:=1to4
do dfs(x+dx[i],y+dy[i]);
a[x,y]:=true;
end;
begin
readln(m,n,t);
readln(x,y,p,q);
fillchar(a,sizeof(a),true);
for i:=1
to t do
begin
readln(aa,bb);
a[aa,bb]:=false;
end;
dfs(x,y);
writeln(ans);
end.
洛谷 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...