時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:4
描述
這有乙個迷宮,有0~8行和0~8列:
1,1,1,1,1,1,1,1,1
1,0,0,1,0,0,1,0,1
1,0,0,1,1,0,0,0,1
1,0,1,0,1,1,0,1,1
1,0,0,0,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,0,0,0,1
1,1,1,1,1,1,1,1,1
0表示道路,1表示牆。
現在輸入乙個道路的座標作為起點,再如輸入乙個道路的座標作為終點,問最少走幾步才能從起點到達終點?
(注:一步是指從一座標點走到其上下左右相鄰座標點,如:從(3,1)到(4,1)。)
輸入
第一行輸入乙個整數n(0
輸出輸出最少走幾步。
樣例輸入
23 1 5 7
3 1 6 7
樣例輸出
1211
#include#include#include#includeusing namespace std;
#define inf 0xfffffff
int x,y,ex,ey,ans,vis[11][11];
int dx[4]=;
int dy[4]=;
int map[9][9]=;
struct node
a,temp;
int jud(struct node a)
void bfs()
vis[temp.x][temp.y]=1;
q.push(temp);
}} }
}int main()
ans=inf;
bfs();
printf("%d\n",ans);
}}
優化**:
#include#include#include#includeusing namespace std;
#define inf 0xfffffff
int x,y,ex,ey,ans,vis[11][11];
int dx[4]=;
int dy[4]=;
int map[9][9]=;
struct node
}a,temp;
int jud(struct node a)
void bfs()
vis[temp.x][temp.y]=1;
q.push(temp);
}} }
}int main()
ans=inf;
bfs();
printf("%d\n",ans);
}}
最少步數 dfs樣板
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...
最少步數(bfs)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...
bfs 最少步數
時間限制 1000 ms 記憶體限制 65536 kb 提交數 455 通過數 241 a b兩點的座標。最少步數。12 1618 1089 no因為a,b兩點是隨機輸入的,所以沒有數學規律,只能用廣度優化搜尋。但是,它們終點一樣,所以我們可以把 1,1 看作起點,把ab看作終點,只需要一次廣度優化...