第二十三天 廣度優先搜尋 BFS

2021-09-26 13:42:02 字數 4060 閱讀 3248

勝利大逃亡

時間限制:2 秒

記憶體限制:32 兆

特殊判題:否

題目描述: ignatius 被魔王抓走了,有一天魔王出差去了,這可是 ignatius 逃亡的好機會.

魔王住在乙個城堡裡,城堡是乙個 abc 的立方體,可以被表示成 a 個 b*c 的矩陣,剛開始 ignatius 被關在(0,0,0)的位置,離開城堡的門在(a-1,b-1,c-1)的位置,現在知道魔王將在 t 分鐘後回到城堡,ignatius 每分鐘能從乙個座標走到相鄰的六個座標中的其中乙個.現在給你城堡的地圖,請你計算出 ignatius 能否在魔王回來前離開城堡(只要走到出口就算離開城堡,如果走到出口的時候魔王剛好回來也算逃亡成功),如果可以請輸出需要多少分鐘才能離開,如果不能則輸出-1。

輸入: 輸入資料的第一行是乙個正整數 k,表明測試資料的數量.每組測試資料的第一行是四個正整數 a,b,c 和 t(1<=a,b,c<=50,1<=t<=1000),它們分別代表城堡的大小和魔王回來的時間.然後是 a 塊輸入資料(先是第 0 塊,然後是第 1 塊,第 2 塊…),每塊輸入資料有 b 行,每行有 c 個正整數,代表迷宮的布局,其中 0 代表路,1 代表牆。

輸出: 對於每組測試資料,如果 ignatius 能夠在魔王回來前離開城堡,那麼請輸出他最少需要多少分鐘,否則輸出-1.

樣例輸入:

13 3 4 20

0 1 1 1

0 0 1 1

0 1 1 1

1 1 1 1

1 0 0 1

0 1 1 1

0 0 0 0

0 1 1 0

0 1 1 0

樣例輸出:

11

//

// main.cpp

// escape

////

#include

#include

#include

using

namespace std;

bool mark[51]

[51][

51];int maze[51]

[51][

51];struct n

;queue q;

int go[

3]=;

intbfs

(int a,

int b,

int c)

}return-1

;}intmain

(int argc,

const

char

* ar**)

while

(!q.

empty()

) q.

pop();

n tmp;

tmp.x = tmp.y = tmp.z = tmp.t =0;

q.push

(tmp)

; mark[0]

[0][

0]=true

;int ans =

bfs(a, b, c);if

(ans <= t)

printf

("%d\n"

, ans)

;else

printf

("-1\n");

}return0;

}/*1 3 3 4 20

0 1 1 1

0 0 1 1

0 1 1 1

1 1 1 1

1 0 0 1

0 1 1 1

0 0 0 0

0 1 1 0

0 1 1 0

*/

非常可樂

時間限制:1 秒

記憶體限制:32 兆

特殊判題:否

題目描述: 大家一定覺的運動以後喝可樂是一件很愜意的事情,但是 seeyou 卻不這麼認為。因為每次當 seeyou 買了可樂以後,阿牛就要求和 seeyou 一起分享這一瓶可樂,而且一定要喝的和 seeyou 一樣多。但 seeyou 的手中只有兩個杯子,它們的容量分別是 n 毫公升和 m 毫公升 可樂的體積為 s (s<101)毫公升(正好裝滿一瓶) ,它們三個之間可以相互倒可樂 (都是沒有刻度的,且 s==n+m,101>s >0,n>0,m>0) 。聰明的 acmer 你們說他們能平分嗎?如果能請輸出倒可樂的最少的次數,如果不能輸出"no"。

輸入: 三個整數 : s 可樂的體積 , n 和 m 是兩個杯子的容量,以"0 0 0"結束。

輸出: 如果能平分的話請輸出最少要倒的次數,否則輸出"no"。

樣例輸入:

7 4 3

4 1 3

0 0 0

樣例輸出:no3

//

// main.cpp

// drinkcoca

////

#include

#include

#include

using

namespace std;

struct n

;queue q;

bool mark[

101]

[101][

101]

;void

atob

(int

&a,int sa,

int&b,

int sb)

else

}int

bfs(

int s,

int n,

int m)

a = now.a;

b = now.b;

c = now.c;

atob

(b, n, a, s);if

(!mark[a]

[b][c]

) a = now.a;

b = now.b;

c = now.c;

atob

(a, s, c, m);if

(!mark[a]

[b][c]

) a = now.a;

b = now.b;

c = now.c;

atob

(c, m, a, s);if

(!mark[a]

[b][c]

) a = now.a;

b = now.b;

c = now.c;

atob

(b, n, c, m);if

(!mark[a]

[b][c]

) a = now.a;

b = now.b;

c = now.c;

atob

(c, m, b, n);if

(!mark[a]

[b][c])}

return-1

;}intmain

(int argc,

const

char

* ar**)

for(

int i =

0;i < s;i++

)for

(int j =

0;j < n;j++

)for

(int k =

0;k < m;k++

) mark[i]

[j][k]

=false

; n tmp;

tmp.a = s;

tmp.b = tmp.c = tmp.t =0;

while

(!q.

empty()

) q.

pop();

q.push

(tmp)

; mark[s][0

][0]

=true

;int rec =

bfs(s, n, m);if

(rec ==-1

)printf

("no\n");

else

printf

("%d\n"

, rec);}

return0;

}

第二十三天

1 使用 koa 搭建伺服器 const koa require koa 路由請求 context ctx 上下文 包含req和res ctx.body hello koa2 2 如何配置 koa 路由 const koa require koa 建立路由物件 const router requir...

冥想第二十三天

早上進行了快樂的事情,並跑了步,非常舒服,西四環有點堵,提前給朋友發了資訊讓他們避開。這也是為朋友多做的一些事情,感謝朋友。又來公園裡面轉了兩圈,聽著 你的答案 渾身舒服。輕鬆,保持輕鬆,進行一天的開心快樂的工作吧,上午工作到11 40左右感覺視線有些模糊,就是困了,然後告訴自己就是困了。平穩的度過...

UI第二十三天 動畫

動畫的使 場景 ios中的動畫是指 些檢視上的過渡效果 合理利 動畫能提 戶體驗 uiview的屬性動畫 calayer動畫 uiview動畫 uiviewtransition動畫 uiview動畫 frame 檢視框架 center 檢視位置 bounds 檢視 backgroundcolor 背...