2017華東師範大學網路賽 C

2021-08-01 00:16:03 字數 2161 閱讀 6388

time limit per test: 1.5 seconds

time limit all tests: 10.0 seconds

memory limit: 256 megabytes

袋鼠媽媽找不到她的孩子了。她的孩子被怪獸抓走了。

袋鼠媽媽現在在地圖的左上角,她的孩子在地圖第 x

行第 y

列的位置。怪獸想和袋鼠媽媽玩乙個遊戲:他不想讓袋鼠媽媽過快地找到她的孩子。袋鼠媽媽每秒鐘可以向上下左右四個方向跳一格(如果沒有牆阻攔的話),怪獸就要在一些格仔中造牆,從而完成乙個迷宮,使得袋鼠媽媽能夠找到她的孩子,但最快不能小於 k

秒。請設計這樣乙個迷宮。

第一行兩個整數 n,m

(1≤n,m≤

8),表示地圖的總行數和總列數。

第二行三個整數 x,y

,k(1≤

x≤n,

1≤y≤

m,x+

y>1)

。輸出乙個地圖,應正好 n

行 m列。

.表示空地,用*表示牆。袋鼠媽媽所在的位置和孩子所在的位置用.表示。

資料保證有解。

input

2 6

1 3 4

output

.*.***

......

2017 華東師範大學網賽

這道題題意很簡單,就是給出起點和目標,要求放牆,到達的時間≥k就可以了,那麼顯然會想到,不一定非要考慮k,只要考慮怎麼放牆能讓這兩點之間的距離最長就可以了,就變成了求最長路的問題....

剛開始一直以為是dfs+bfs,dfs模擬放牆,bfs計算最短路驗證答案是否正確....然後測試發現這個**只能撐住6*6。

後來發現了一點...如果把整張圖開始的時候先放滿牆,去找一條路最長,那就發現並不需要bfs了...最長的那條路只要dfs就可以找出來,並且因為是通道,所以對每個點,它向外聯通的點最多只有兩個,那麼也就是說在dfs時,對當前點x,y,它的四個方向內只能有乙個vis[i][j]被標記過,這裡有一點要注意,要先判斷當前點聯通點是否超過1個再判斷是否到達終點,因為會存在在最後那個2*2的位置中轉了一圈但是因為到達了終點而沒有考慮牆的情況...可能說不太清,這裡給出一組資料,自己試一下就知道了...

8 8 

8 8 36

.*...***

.*.*.***

.*.*....

.*.****.

.*.**...

.*.*..**

.*.*.*..

...*....

這組資料可以看到右下角那個2*2的格仔中四個點都是路,dfs過程中它的路徑就是

果然還是自己太菜...

做的題目太少了....題目並不難....那麼這裡放兩個**以供參考

【**】

[dfs+bfs]

#include #include #include #include #include using namespace std;

int ex,ey,k,n,m;

int vis[10][10];

int dis[10][10];

int dx[5]=;

int dy[5]=;

int a[10][10]=;

int bfs()

a[xx][yy]=0; }}

int main()

[dfs]ac**

#include #include #include #include using namespace std;

int vis[10][10]=;

int dx[5]=;

int dy[5]=;

int n,m,ex,ey,k,flag=0;

void dfs(int x,int y,int deep)

if (sum>1) return;

if (x==ex&&y==ey)

{ if (deep>=k)

{ for (int i=0;i=0&&yy>=0&&xx

2023年華東師範大學網路賽 E

e.黑心啤酒廠 time limit per test 1.0 seconds time limit all tests 1.0 seconds memory limit 256 megabytes accept submit 1184 4093 黑心啤酒廠為了讓大家買啤酒,會把一瓶酒設計成恰好能倒...

袋鼠媽媽找孩子 2017 華東師範大學網賽

思路 剛開始以為直接dfs搜尋到終點就可以了。我是剛開始將陣列全都定義為 然後深搜一條路。搜一步就將那一步改為 但是這樣會走出四個粘在一起的格仔,那裡就算四步,實際上那裡不是四步。後來想了下。得判斷什麼格仔可以走什麼格仔不可以走,乙個格仔只有到那裡的那個方向是 其餘三個都是 才能走。思路僅供參考不知...

華東師範大學2020 加密2

加密2 time limit 1000ms memory limit 30000kb total submit 179 accepted 103 description 對乙個整數 32位無符號整數 進行規則如下的加密 1.低16位和高16位互換 2.此時的低16位按位取反 3.此時的高16位與低1...