時間限制: 1000 ms 記憶體限制: 65536 kb
提交數: 455 通過數:241
a、b兩點的座標。
最少步數。
12 16
18 10
8
9
no因為a,b兩點是隨機輸入的,所以沒有數學規律,只能用廣度優化搜尋。
但是,它們終點一樣,所以我們可以把(1,1)看作起點,把ab看作終點,只需要一次廣度優化搜尋。
bfs主要就是佇列思想,可以用que[k][1],que[k][2]記錄從(1,1)到該點,用que[k][3]記錄最小步數。初始時,que中只有乙個元素(1,1),最小步數為0。
a陣列記錄(1,1)到每點所需要的最小步數。初始時,a[1][1]=0,除此之外的所有元素值設為-1。
約束條件:
不能越出界外。由於馬的所有可能的落腳點s均在s的範圍內,因此馬一越界就將s值賦為0,表示已經擴充套件過,到達這裡至少需要0布,但這樣可以避免馬再次落入這些界外點。
以前到達過得點,無需在到,第一次到即為最小步數。
#includeusing namespace std;
int dx[12]=,
dy[12]=;
int main()
; memset(a,0xff,sizeof(a)); //初始化a為-1
int head=0,tail=1;
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
que[1][1]=1;
que[1][2]=1;
que[1][3]=0;//初始化佇列,(1,1) 最少步數0
int x,y;do}
}}while(headreturn 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)
時間限制 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...
最少步數 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,...