BFS 蛇和梯子 HUNNU

2021-05-26 23:08:52 字數 1696 閱讀 4527

蛇和梯子

time limit:1000ms,special time limit:2500ms,memory limit:32768kb

total submit users:5,accepted users:4

problem 10103 :no special judgement

problem description

蛇和梯子」是乙個在n*n(0 < n ≤ 20)的方格棋盤上進行的遊戲。(見下圖)

方格從1到n的平方編號。

除了1號和最後1號方格,其他的格仔有可能有蛇或梯子存在(蛇和梯子的數量及具體位置由輸入確定,它們的數量都在100之內並且蛇和梯子不能臨近放置,也就是在任何了放置兩者首尾的方格之間至少還有乙個未放置任何東西的格仔,並且同乙個方格中最多放置乙個物品。)。

開始的時候玩家把他們的標誌物放在1號格仔中,玩家輪流以扔骰子的方式移動他們的指示物。如果乙個指示物到達了一條蛇的嘴部,則把它移回蛇的尾部;如果乙個指示物到達了乙個梯子的底部則將它移動到梯子的頂部。

如果你是乙個可以自由控制骰子的高手,現在請求出你至少需要扔幾次骰子才能到達標為n2的格仔

input

有多個測試序列。不同測試資料之間用乙個空行隔開

每個測試序列第一行包含乙個正整數n,表示棋盤大小。如果n=0表示輸入結束並且不需要處理。

第二行包含乙個整數m,表示梯子的數目。

接下來m行,每行包含兩個正整數b,t,表示梯子的底部、頂部。

接下來一行包含乙個整數k,表示蛇的數目。

接下來k行,每行包含兩個正整數o,l,表示蛇的頭尾。

output

每個測試序列輸出一行,包含乙個正整數,表示需要最少扔骰子的次數。

sample input

6

33 23

5 16

20 33

135 2551

9 11

116 14

0

sample output

3

4

judge tips

(在上圖所示例一中,走4步到達5並由梯子上公升到16,再走4步到達20並由梯子上公升到33,然後走3步。這樣,一共需要扔3次骰子。而在例二中,是連扔4個6。)

題目的意思很好理解,也是比較典型的bfs。梯子和蛇可以直接變成轉換器,其他的和一般的bfs完全一樣,只要別忘記標記、剪枝就可以了。

**如下:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

struct node

;struct n

;n as[405],bs[405];

int n,m,s;

bool flag[405];

int bfs()

return 0;

}

bfs 優先佇列 詭異的梯子 hdu1277

hogwarts正式開學以後,harry發現在hogwarts裡,某些樓梯並不是靜止不動的,相反,他們每隔一分鐘就變動一次方向.比如下面的例子裡,一開始樓梯在豎直方向,一分鐘以後它移動到了水平方向,再過一分鐘它又回到了豎直方向.harry發現對他來說很難找到能使得他最快到達目的地的路線,這時ron ...

簡單版貪吃蛇 3128 BFS

解題思路 bfs加路徑。用廣搜求出最短路徑,用biao結構體儲存每個最短路徑的前一步。通過終點依次存下前一步的座標,一直到起點,最後判斷方向輸出。1 include 2 include 3 include 4 include 5 using namespace std 6char tu 105 10...

京都大學製造了會爬梯子的機器蛇,可用於救災援助

來自京都大學和電子通訊大學的研究人員推出了一種類似蛇的機械人,它於上週在2018年ieee rsj智慧型機械人和系統國際會議上公布。該會議的座右銘是 邁向機械人社會 蛇和梯子曾經是乙個棋盤遊戲,現在它是我們共享的機械人反烏托邦未來不可或缺的一部分。就目前而言,它只做一件事而且做得很好,提出了一種允許...