POJ 3278 簡單廣搜

2021-07-16 01:09:59 字數 460 閱讀 1927

poj3278

題意:輸入n,m,求由n到m需要最少步數,n只能加一減一或者乘二。

寫的第二道廣搜題,發現用佇列就是每一種可能讀入隊尾,然後再從隊首乙個乙個的遍歷。

需要做的是判斷條件和記錄步數。

#includeusing namespace std;

#include#include#include#define m 200000

int key[m];

int visit[m];

int bfs(int first,int last)

if((t + 1)>= 0 && (t + 1) < m && !visit[t + 1])

if((t*2) >= 0 && (t*2) < m && !visit[t*2])

}}int main()

return 0;

}

POJ 3278 抓牛(廣搜)

題意 john和它的牛在一天直線上,joh每次可以向前走一步或者向後走一步或者跳到當前位置的2倍位置上,求john在最少的時間裡抓到那牛。輸入 john當前位置和牛所在的位置。輸出 john花的最少時間。分析 可以將問題轉化為從乙個點到另乙個點的最少步數,這裡可以用廣搜去做,首先將當前john的位置...

poj 3278 簡單搜尋bfs

題目大意 給出兩個數n,k 經過兩種操作使n成為k所需要的步數 操作1 n n 1或n n 1 操作2 n n 2 解題思路 用bfs搜尋,vis陣列標記狀態同時記錄到當前位置所用的步數 include include include using namespace std int n,k int ...

POJ 3278 解題報告

這道題是個bfs的問題,因為要求的是乙個相鄰節點間距離都為1的graph中兩個節點間的最短距離。一開始上來用的dfs,結果可想而知。3278 accepted 844k 63ms g 1192b id thestor1 lang c task poj3278 include include incl...