時間限制: 1 sec 記憶體限制: 128 mb
提交: 1277 解決: 529
[提交][狀態][討論版]
題目描述
【題意】
有乙個n*m格的迷宮(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這n*m個資料和起始點、結束點(起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號)。現在要你程式設計找出所有可行的道路,要求所走的路中沒有重複的點,走時只能是上下左右四個方向。如果一條路都不可行,則輸出相應資訊(用-l表示無路)。
注意:本題沒有spj,請統一用 左上右下的順序拓展,也就是 (0,-1),(-1,0),(0,1),(1,0)
【輸入格式】
第一行是兩個數n,m( 1 < n , m < 15 ),接下來是m行n列由1和0組成的資料。
最後兩行是起始點和結束點。
【輸出格式】
所有可行的路徑,描述乙個點時用(x,y)的形式,除開始點外,其他的都要用「->」表示方向。
如果沒有一條可行的路則輸出-1。
【樣例輸入】
5 6
1 0 0 1 0 1
1 1 1 1 1 1
0 0 1 1 1 0
1 1 1 1 1 0
1 1 1 0 1 1
1 1
5 6
【樣例輸出】
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(2,5)->(3,5)->(3,4)->(3,3)->(4,3)->(4,4)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(2,5)->(3,5)->(3,4)->(4,4)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(2,5)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(3,4)->(3,3)->(4,3)->(4,4)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(3,4)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(2,4)->(3,4)->(4,4)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(3,4)->(2,4)->(2,5)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(3,4)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(3,4)->(4,4)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(4,3)->(4,4)->(3,4)->(2,4)->(2,5)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(4,3)->(4,4)->(3,4)->(3,5)->(4,5)->(5,5)->(5,6)
(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(4,3)->(4,4)->(4,5)->(5,5)->(5,6)
之前也做過類似的題目用的深搜,但這題不同的是要記錄每次的路徑,此題較為有效的方法是用結構體記錄路徑。
#include
#include
#include
#include
using
namespace
std;
int n,m,t,sx,sy,ex,ey,a[20][20],x,y,cx[4]=,cy[4]=,k;
struct node
b[5000];
void dfs(int c,int d,int t)
else }
}int main()
遞迴 走迷宮
時間限制 1 sec 記憶體限制 128 mb 提交 78 解決 17 提交 狀態 討論版 命題人 外部匯入 有乙個n m格的迷宮 表示有n行 m列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這n m個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這...
遞迴入門 走迷宮
有乙個nm格的迷宮 表示有n行 m列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這nm個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號 現在要你程式設計找出所有可行的道路,要求所走的路中沒有重複的點,走時只能是上下左右四個方向。如果...
遞迴解決走迷宮問題
public static void main string args for int i 0 i 7 i maze 3 1 1 maze 3 2 1 maze 1 2 1 maze 2 2 1 for int i 0 i 8 i system.out.println if mazegame maz...