日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[蓝桥杯][2018年第九届真题]迷宫与陷阱(三维数组标记BFS)

發布時間:2023/12/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [蓝桥杯][2018年第九届真题]迷宫与陷阱(三维数组标记BFS) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
小明在玩一款迷宮游戲,在游戲中他要控制自己的角色離開一間由NxN個格子組成的2D迷宮。
小明的起始位置在左上角,他需要到達右下角的格子才能離開迷宮。
每一步,他可以移動到上下左右相鄰的格子中(前提是目標格子可以經過)。
迷宮中有些格子小明可以經過,我們用’.‘表示;
有些格子是墻壁,小明不能經過,我們用’#'表示。
此外,有些格子上有陷阱,我們用’X’表示。除非小明處于無敵狀態,否則不能經過。

有些格子上有無敵道具,我們用’%'表示。
當小明第一次到達該格子時,自動獲得無敵狀態,無敵狀態會持續K步。
之后如果再次到達該格子不會獲得無敵狀態了。

處于無敵狀態時,可以經過有陷阱的格子,但是不會拆除/毀壞陷阱,即陷阱仍會阻止沒有無敵狀態的角色經過。

給定迷宮,請你計算小明最少經過幾步可以離開迷宮
輸入
第一行包含兩個整數N和K。 (1 <= N <= 1000 1 <= K <= 10)
以下N行包含一個NxN的矩陣。
矩陣保證左上角和右下角是’.’。
輸出
一個整數表示答案。如果小明不能離開迷宮,輸出-1。
樣例輸入
5 3
…XX
##%#.
…#.
.###.

樣例輸出
10
思路:挺明顯的一個bfs題目,但是某個點不能單純的走過就不能走了,因為有另外一個元素k。而且k很小。所以我們就用一個三維數組標記,如果某個點在無敵狀態為k時已經走過了,就不能再走了。剩下的就是在每一種狀態時的判斷了。
代碼如下:

#include<bits/stdc++.h> #define ll long long using namespace std;const int maxx=1e3+100; struct node{int x,y,k,val;node(int a,int b,int c,int v){x=a,y=b,k=c,val=v;} }; int d[][2]={{1,0},{0,1},{0,-1},{-1,0}}; char s[maxx][maxx]; int vis[maxx][maxx][11]; int n,k;inline int bfs() {queue<node> q;vis[0][0][0]=1;q.push(node(0,0,0,0));while(q.size()){node u=q.front();q.pop();if(u.x==n-1&&u.y==n-1) return u.val;for(int i=0;i<4;i++){int tx=u.x+d[i][0];int ty=u.y+d[i][1];if(tx<0||ty<0||tx>=n||ty>=n||s[tx][ty]=='#') continue;if(s[tx][ty]=='%'&&vis[tx][ty][k]==0){vis[tx][ty][k]=1;q.push(node(tx,ty,k,u.val+1));}else {if(s[tx][ty]=='X'&&u.k&&vis[tx][ty][u.k-1]==0){vis[tx][ty][u.k-1]=1;q.push(node(tx,ty,u.k-1,u.val+1));}else if(s[tx][ty]=='.'&&u.k&&vis[tx][ty][u.k-1]==0){vis[tx][ty][u.k-1]=1;q.push(node(tx,ty,u.k-1,u.val+1));}else if(s[tx][ty]=='.'&&u.k==0&&vis[tx][ty][0]==0){vis[tx][ty][0]=1;q.push(node(tx,ty,0,u.val+1));}}}}return -1; } int main() {scanf("%d%d",&n,&k);memset(vis,0,sizeof(vis));for(int i=0;i<n;i++) scanf("%s",s[i]);int ans=bfs();if(ans==-1) printf("-1\n");else printf("%d\n",ans);return 0; }

努力加油a啊,(o)/~

總結

以上是生活随笔為你收集整理的[蓝桥杯][2018年第九届真题]迷宫与陷阱(三维数组标记BFS)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 爱情岛论坛永久入口 | 国产亚洲制服欧洲高清一区 | 韩国日本美国免费毛片 | 国产丝袜美女 | 色爱av| 91网站在线播放 | h片在线 | 粉嫩av国产一区二区三区 | 亚洲一区国产一区 | 色偷偷综合 | 久久国产精品99久久人人澡 | 久久久久中文字幕亚洲精品 | 射久久久 | 狠狠视频| 男人操女人的网站 | 国产成人精品片 | 色咪咪网站 | 欧美一区二区三区粗大 | 日本中文字幕二区 | 国产精品一区二区在线观看 | 黄色一级图片 | 美女国产免费 | 涩涩视频免费在线观看 | 另类国产 | 成人一二三四区 | 国产精品一区二区久久 | 18精品爽国产白嫩精品 | 国产精品一区在线观看你懂的 | 网友自拍咪咪爱 | 高清视频在线播放 | 精品欧美一区二区三区免费观看 | 国产v在线 | 国产亚洲成av人片在线观看桃 | 精品人妻无码一区二区三区 | 丰满人妻一区二区三区无码av | 91秦先生在线播放 | 国产区123| 最近日本中文字幕 | 六月婷婷在线观看 | 天天操狠狠干 | 欧美人性生活视频 | 精品成人18 | 国产影音先锋 | 国产中文字幕一区二区三区 | 国产老熟女一区二区三区 | 操皮视频 | 99精品国产99久久久久久97 | 美女露出让男生揉的视频 | 人妻少妇偷人精品无码 | 国产日韩免费视频 | 日韩国产欧美在线观看 | 超碰免费看 | 亚洲天堂福利视频 | 国产黄色影视 | 日韩一区二区三区在线免费观看 | 亚洲欧洲色 | 非洲一级黄色片 | 自拍偷拍福利视频 | 91高跟黑色丝袜呻吟动态图 | 国产激情在线 | 午夜性色福利影院 | 成人a√ | 久久国产精品久久久 | 国产欧美综合一区二区三区 | 中国女人一级一次看片 | 亚洲熟妇色自偷自拍另类 | 两口子交换真实刺激高潮 | 伊人久久久久久久久久久 | 白丝美女喷水 | 久久久久久久蜜桃 | 国产激情免费视频 | 亚洲三级成人 | 国产精品111 | 亚洲v视频 | 国产午夜电影 | 国产精品精品久久久 | 黑丝少妇喷水 | 国产一级免费看 | 啦啦啦视频在线观看 | 激情天天 | 最新中文av | 午夜视频免费 | 免费中文字幕 | 亚洲av永久无码精品一区二区国产 | 国产精品视频久久 | 一本在线免费视频 | 久草福利在线 | av一级 | 欧美日一区二区 | 亚洲欧美日韩在线不卡 | 国产 中文 字幕 日韩 在线 | 久久色婷婷 | 国产成人精品一区二区三区在线观看 | 欧美一级黄色片 | 久久免费视频99 | 国产成人精品无码免费看夜聊软件 | 综合狠狠开心 | 成人性色生活片 | 亚洲激情在线观看 |