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...