#include#include#includeusing namespace std;
struct point;
int main()
cout}
} for(i = 0; i < col+2; ++i)
for(i = 1; i < row+1; ++i)
queueq;
point *start = (point*)malloc(sizeof(point));//起點
coutx>>start->y;
start->last = start;
q.push(start);
a[start->x][start->y] = 2;
point end;//終點
cout>end.y;
int aspect[4][2] = ,,,};//轉向:上下左右
int flag = 0;//是否有路可走的標誌
while(!q.empty())else if(lastpoint->x - front->x == -1)else if(lastpoint->y - front->y == 1)else
lastpoint = front;
front = front->last;
}//cout<"y] = -5;
break;
}else}}
} if(!flag)
cout<
9 80 0 1 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 1 1 1 0
0 1 1 1 0 0 1 0
0 0 0 1 0 0 0 0
0 1 0 0 0 1 0 1
0 1 1 1 1 0 0 1
1 1 0 0 0 0 0 1
0 0 0 0 0 0 0 0
執行結果: 迷宮的最短路徑
雖然在網上找不到題目,但這題實在是太經典了,好多搜尋題目都是從它變形來的 從s走到g,不能走 測試資料 10 10 s g include include includeusing namespace std const int inf 100000000 define max n 105 defi...
迷宮的最短路徑
迷宮的最短路徑 給定乙個大小為n m的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右的通道移動。請求出從起點到終點所需的最小步數。注意,本題假設從起點一定可以到達終點。const inf 10000000 typedef pairp 狀態 輸入 cahr maze maxn maxm 1 i...
迷宮的最短路徑
挑戰程式設計競賽 第二版 c c 迷宮的最短路徑 給定乙個大小為 n m 的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四格的通道移動。請求出從起點到終點所需要的最小步數。請注意,本題假定從起點一定可以移動到終點。輸入 n 10,m 10 迷宮如下所示。s g 分別表示牆壁 通道 起點和終...