zoj1005 BFS 路徑輸出

2021-09-18 05:06:35 字數 1259 閱讀 3250

這道題一開始就想用搜尋做,想的實際上也沒錯,因為要輸出路徑,所以我一開始使用了dfs。但發現深搜就會沿著一條路走到底,而我們只能判斷它是否達到了目標狀態。如果它不到達目標狀態可能會無限迴圈下去。所以轉而用廣搜去做這道題,但廣搜要如何儲存路徑呢?於是我想到了用結構體struct加stl裡的容器進行儲存路徑,這裡我使用了佇列.題中有六種操作,但在不同情況下有著不同的操作不能進行,這才能保證題目能在兩秒內完成。而我在輸入後沒有加!=eof而找了很久bug,哭了。。。。;

#include

#include

#include

#include

using

namespace std;

int a,b,a,b,goal;

int vis[

1000][

1000];

struct point

;struct points

;bool

change

(int n)

a=a;

}else

if(n==1)

b=b;

}else

if(n==2)

a=0;

}else

if(n==3)

b=0;

}else

if(n==4)

b+=a;if

(b>b)

else

}else

a+=b;if

(a>a)

else

}return

true;}

void

input

(int n)

else

if(n==1)

else

if(n==2)

else

if(n==3)

else

if(n==4)

else

}void

bfs()}

while

(!p.

empty()

)printf

("success\n");

return;}

point tq=tempq.r.

back()

; points ts=tempq;

for(

int i=

0;i<

6;i++)}

}}}int

main()

return0;

}

Pots POJ 3414(bfs 路徑輸出)

思路 bfs需要輸出路徑,不能用c 的queue,因為回溯的過程要用到佇列的下標,所以我們需要模擬佇列 include include include includeusing namespace std const int maxn 1e5 10 int n,m,k int vis 110 110...

poj迷宮問題(bfs路徑輸出)

迷宮問題 time limit 1000ms memory limit 65536k total submissions 11638 accepted 6967 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走...

ZOJ 1456 最短路 輸出路徑

這題本來覺得比較簡單的 可是一直wa 後來看別人解釋找到原因了 這題難就難再要字典序輸出,要是單單floyd的話,無法保證最後得到的路徑字典序最小,乙個簡單的反例就是如果6 5 7 8 9和6 8 1 2 9以及6 10 1 2 9同時是6 9的最短路的話,如果忽略相等情況下的更新,6 8之間是不會...