poj1915 馬的遍歷

2021-06-23 05:50:57 字數 797 閱讀 5063

十分簡單的題目

直接bfs可以求得

可是看到討論裡有人用a*

想正好練一下

愉快的敲出來了 可是 a* 的建構函式曼哈頓距離/3 wa

一直找不到**錯了

想起來以前有道題一樣只要把建構函式都是曼哈頓距離除以乙個數 可是怎麼過不了 最後把建構函式變成bfs 過了

今天看到了別人的1000個資料 對拍了一下 發現原來我在學了a*以來一直犯的錯 一直把a*當 bfs 在遍歷前標記 輸出 了

原來錯誤的判斷函式

bool pan(int x,int y)

#include #include #include #include #include using namespace std;

struct node

}s,e;

int n;

int mp[301][301],to[8][2];

bool pan(int x,int y,int step)

if(mp[x][y]<=step) return 0;

mp[x][y]=step;

return 1;

}int get_ep(int x,int y)

int astar()

}} return 0;

}int main()

}

找了好久沒找到以前那個程式 現在算了

可是 先在還有個問題

如果我把標記放在每次元素出棧的時候 會爆記憶體又怎麼處理?

BFS 馬的遍歷

又是一道裸bfs。主要是為了過洛谷上的試煉場。有乙個n m的棋盤 1 n,m 200 在某個點上有乙個馬,要求你計算出馬到達棋盤上任意乙個點最少要走幾步 輸入描述 一行四個資料,棋盤的大小和馬的座標 輸出描述 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 inp...

zufeoj 馬的遍歷

中國象棋半張棋盤如圖4 a 所示。馬自左下角往右上角跳。今規定只許往右跳,不許往左跳。比如圖4 a 中所示為一種跳行路線,並將所經路線列印出來。列印格式為 0,0 2,1 3,3 1,4 3,5 2,7 4,8 無輸入輸出上述棋盤的可以從 0,0 走到 4,8 點的方案數。includeusing ...

4 馬的遍歷

有乙個n m的棋盤 1一行四個資料,棋盤的大小和馬的座標 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入 1複製 3 3 1 1輸出 1複製 0 3 2 3 1 1 2 1 4 include include include include includeu...