本體是標準的三個入口的bfs水題,但是細節問題太多
1.陣列沒必要太大,一旦re了,是因為出現了這麼幾種情況,出現負數,因為題中宣告不會有負數的出現,把負數的情況短路掉
還有就是我們一不小心越界,這時候,我們和上一種一樣,我們需要先預判短路,再進行下標訪問
2.記錄陣列是很有必要的,防止tle
3.小心n,k相同點額情況,此時輸出結果為0,不用bfs
#include"iostream"
#include"cstdio"
#include"cstring"
#include"cstdlib"
#define n 1000000
using namespace std;
typedef struct node
point;
int n,k;
int sum;
point queue[n];
int head;
int tail;
int book[n];
int main()
if(dy=0&&book[dy]==0)
if(dz=0&&book[dz]==0)
head++;
} cout<} return 0;
}
poj 3278 bfs(抓住那頭牛)
題意 農夫知道一頭牛的位置,想要抓住它。農夫和牛都位於數軸上,農夫起始位於點n 0 n 100000 牛位於點k 0 k 100000 農夫有兩種移動方式 1 從x移動到x 1或x 1,每次移動花費一分鐘 2 從x移動到2 x,每次移動花費一分鐘 假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要...
poj 3278(bfs寬度優先搜尋)
題目大意 給定乙個數n o n 100000 變成另乙個數k o k 100000 允許的操作是乘以2,或者加減1,問最少要幾步才能完成?題目分析 一般這種求有多少種方案的感覺用bfs 的居多。反正這題是用bfs的,然後廣度優先搜尋都是要用到佇列的,然後感覺這題就比較裸吧,只是一維的,相對於之前做的...
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 ...