POJ3278 BFS容易出現思維漏洞

2021-07-22 18:24:38 字數 664 閱讀 6179

本體是標準的三個入口的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 ...