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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

P2802 回家(dfs+三维数组标记+剪枝)

發布時間:2023/12/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P2802 回家(dfs+三维数组标记+剪枝) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述 小H在一個劃分成了n* m個方格的長方形封鎖線上。 每次他能向上下左右四個方向移動一格(當然小H不可以靜止不動), 但不能離開封鎖線,否則就被打死了。 剛開始時他有滿血6點,每移動一格他要消耗1點血量。一旦小H的 血量降到 0, 他將死去。 他可以沿路通過拾取鼠標(什么鬼。。。)來補滿血量。只要他走到有鼠標的格子,他不需要任何時間即可拾取。格子上的鼠標可以瞬間補滿,所以每次經過這個格子都有鼠標。就算到了某個有鼠標的格子才死去, 他也不能通過拾取鼠標補滿 HP。 即使在家門口死去, 他也不能算完成任務回到家中。
地圖上有 5 種格子:
數字 0: 障礙物。
數字 1: 空地, 小H可以自由行走。
數字 2: 小H出發點, 也是一片空地。
數字 3: 小H的家。
數字 4: 有鼠標在上面的空地。
小H能否安全回家?如果能, 最短需要多長時間呢?
輸入格式 第一行兩個整數n,m, 表示地圖的大小為n*m。
下面 n 行, 每行 m 個數字來描述地圖。
輸出格式 一行, 若小H不能回家, 輸出-1,否則輸出他回家所需最短時間。
輸入輸出樣例 輸入 #1
復制
3 3
2 1 1
1 1 0
1 1 3
輸出
#1
復制
4
說明/提示 1<=n,m<=9
思路:dfs挺不錯的一道題目。一開始看數據量會發現很小,但是如果不仔細看的話,會出現很多錯誤。首先要注意剪枝,如果說當前步數已經大于等于當前的最小值了,就不需要往下走了,因為再走也是枉然。其次就是每一個格子都有可能再次走到,但是走到的時候,能量值是不一樣的。因此在標記的時候需要開一個三維數組進行標記。
代碼如下:

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m; const int N = 11; int sx,sy,ex,ey; int g[N][N]; bool st[N][N][7]; int flag = 0; int res = 0x3f3f3f3f; int nex[4][2] = {{1,0},{0,1},{-1,0},{0,-1}}; void dfs(int x,int y,int health,int step) {if(health==0) return;if(step>=res) return ; if(g[x][y]==3) {res = min(res,step);flag = 1;return;}if(g[x][y]==4) health=6;for(int i=0;i<4;i++){int tx = x+nex[i][0];int ty = y+nex[i][1];if(tx<1||tx>n||ty<1||ty>m||st[tx][ty][health-1]) continue;if(!g[tx][ty]) continue;st[tx][ty][health-1]=1;dfs(tx,ty,health-1,step+1);st[tx][ty][health-1]=0;} } int main() {cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>g[i][j];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(g[i][j]==2){sx = i;sy = j;}if(g[i][j]==3){ex = i;ey = j;}}st[sx][sy][6]=true;dfs(sx,sy,6,0);if(res==0x3f3f3f3f) printf("-1");else printf("%d",res);return 0; }

努力加油a啊

總結

以上是生活随笔為你收集整理的P2802 回家(dfs+三维数组标记+剪枝)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人免费在线播放 | 欧美激情视频一区二区三区不卡 | 噼里啪啦国语电影 | 亚洲一区第一页 | 久久国产精品影视 | 蜜桃视频日韩 | 国产男女无套 | 日韩av一区二区三区在线观看 | www.五月婷| 色之久久综合 | 海量av资源| 久久青青草视频 | 九色porny自拍视频 | 日韩欧美激情视频 | 国产极品粉嫩 | 久久久精品人妻一区二区三区色秀 | 精品动漫一区二区三区的观看方式 | 最近中文字幕在线视频 | 日韩性生交大片免费看 | 吸咬奶头狂揉60分钟视频 | 欧美成人免费高清视频 | 五月天六月婷婷 | 久久精品美女视频 | 免费福利视频在线观看 | www.超碰在线.com | 永久免费精品影视网站 | avtt在线 | 狠狠躁夜夜躁人爽 | 色视频一区 | 超碰97人人爱 | 在线看毛片网站 | 日本视频久久 | 日本午夜免费福利视频 | 亚洲日本成人 | 日韩精品亚洲一区 | 日韩成人综合 | 污站在线观看 | 999国产精品视频免费 | 国产伦精品一区二区三区 | 日本不卡1 | h网站在线| 无码人妻精品一区二区三 | 日韩av地址 | 精品人妻无码一区二区色欲产成人 | 蜜桃传媒一区二区亚洲 | 日本在线一区二区 | 亚洲无人区码一码二码三码的含义 | 国产精品久久成人 | 黄色大毛片| 国产高清一区二区三区 | 欧美三级视频 | 中文日韩字幕 | 经典杯子蛋糕日剧在线观看免费 | 一区二区三区四区在线免费观看 | 免费a级片在线观看 | 亚洲日本香蕉视频 | 92av视频 | 亚洲电影在线观看 | 97国产精东麻豆人妻电影 | 国产精品网友自拍 | 日韩一二三四区 | 黑人巨茎大战欧美白妇 | 亚洲精品av中文字幕在线在线 | 免费成人深夜在线观看 | 97视频在线观看免费 | 人人妻人人澡人人爽久久av | 中出少妇 | www.五月婷| 一级美女视频 | 17c精品麻豆一区二区免费 | 岛国在线视频 | 日韩三级观看 | 自拍超碰在线 | 久久婷婷激情 | 久久91亚洲人成电影网站 | www.国产在线观看 | 成人在线激情网 | 国产一区在线免费观看 | 日韩毛片视频 | 国产精品永久免费视频 | 黄色特级网站 | 91蜜桃视频 | 肉丝肉足丝袜一区二区三区 | 婷婷久久五月 | 美女av影院| juliaann办公室丝袜大战 | 国产精品videossex国产高清 | 极品少妇视频 | 在线观看免费视频一区 | 婷婷激情社区 | 亚洲欧美日韩在线一区 | 国产精品一区三区 | 在线免费看av的网站 | 色噜噜影院 | 欧美亚洲中文精品字幕 | 我想看毛片 | 潘金莲一级淫片aaaaa武则天 | 国产日韩欧美一区二区东京热 | 超级黄色录像 |