題目描述:
sun所在學校每年都要舉行電腦節,今年電腦節有乙個新的趣味比賽專案叫做闖迷宮。
sun的室友在幫電腦節設計迷宮,所以室友就請sun幫忙計算下走出迷宮的最少步數。
知道了最少步數就可以輔助控制比賽難度以及去掉一些沒有路徑到達終點的map。
比賽規則是:從原點(0,0)開始走到終點(n-1,n-1),只能上下左右4個方向走,只能在給定的矩陣裡走。
輸入:輸入有多組資料。
每組資料輸入n(0
輸出:對每組輸入輸出該迷宮的最短步數,若不能到達則輸出-1。
樣例輸入:
20 10 0
50 0 0 0 0
1 0 1 0 1
0 0 0 0 0
0 1 1 1 0
1 0 1 0 0
樣例輸出:
2
這個題用bfs做,用dfs會超時
#include#include#include#include#include#include#include#include#includeusing namespace std;
struct point
;int n,min;
int dir[2]= ,,,};
int mymap[100][100];
int vis[100][100];
queueq;
int check(int x,int y)//判斷是否可以走這個點
void dfs(int x,int y,int cnt)//dfs
}return ;
}int bfs()//bfs
bpoint.x=0;
bpoint.y=0;
epoint.x=n-1;
epoint.y=n-1;
vis[bpoint.x][bpoint.y]=1;
q.push(bpoint);
while(!q.empty())
}if(vis[n-1][n-1])
}}int main()
{ int i,j,k,l,flag;
char ch;
while(cin>>n)
{min=100005;
for(i=0; i
九度OJ 題目1018
題目1018 統計同成績學生人數 題目描述 讀入n名學生的成績,將獲得某一給定分數的學生人數輸出。輸入 測試輸入包含若干測試用例,每個測試用例的格式為 第1行 n 第2行 n名學生的成績,相鄰兩數字用乙個空格間隔。第3行 給定分數 當讀到n 0時輸入結束。其中n不超過1000,成績分數為 包含 0到...
九度OJ 題目1123 採藥
一.題目描述 辰辰是個很有潛能 天資聰穎的孩子,他的夢想是稱為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,...
九度oj題目1123 採藥
題目描述 辰辰是個很有潛能 天資聰穎的孩子,他的夢想是稱為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。醫師把他帶到個到處都是草藥的山洞裡對他說 孩子,這個山洞裡有一些不同的草藥,採每一株都需要一些時間,每一株也有它自身的價值。我會給你一段時間,在這...