POJ 3278 題解 搜尋

2021-10-22 16:26:47 字數 861 閱讀 9398

**牛

奶牛在k處不動

fj在n處去抓,最快要多長時間

某時刻fj的座標為x,fj有3種走法,每次每種走法1分鐘

往前走一步

往後走一步

傳送到2x處

time: 1000 ms

memory: 65536 kb

搜尋

#include

#include

#include

#include

using

namespace std;

const

int n =

100000+5

;struct pos

pos(

int x,

int t)};

int n, k;

bool vis[n]

;int

bfs(pos ac)

queue q;

q.push

(ac)

; vis[ac.x]=1

;while

(!q.

empty()

)if(x *

2< n &&

!vis[

2* x])if

(x +

1< n &&

!vis[x +1]

)if(x -

1>0&&

!vis[x -1]

)}return-1

;}intmain()

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

poj3278 結題報告

這個題是乙個容易理解題意的簡單bfs題目.作為菜鳥的我竟然能自己想到解決方案.不容易.個人思路如下,農夫在每個點都有三種走法,我們先把初始位置標記為走過,三種方法位置沒走過就入隊,開始三個點都能入隊,再對三個點每次出隊乙個,分析這個點的三個位置能否走,能走得入隊,依此類推.這裡我用的訪問陣列是乘以個...