亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

網易編程題 逃脫地牢

2019-11-10 20:06:19
字體:
來源:轉載
供稿:網友

給定一個 n 行 m 列的地牢,其中 ‘.’ 表示可以通行的位置,’X’ 表示不可通行的障礙,牛牛從 (x0 , y0 ) 位置出發(fā),遍歷這個地牢,和一般的游戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能到達障礙上。地牢的出口可能在任意某個可以通行的位置上。牛牛想知道最壞情況下,他需要多少步才可以離開這個地牢。 輸入描述:

每個輸入包含 1 個測試用例。每個測試用例的第一行包含兩個整數(shù) n 和 m(1 <= n, m <= 50),表示地牢的長和寬。接下來的 n 行,每行 m 個字符,描述地牢,地牢將至少包含兩個 ‘.’。接下來的一行,包含兩個整數(shù) x0, y0,表示牛牛的出發(fā)位置(0 <= x0 < n, 0 <= y0 < m,左上角的坐標為 (0, 0),出發(fā)位置一定是 ‘.’)。之后的一行包含一個整數(shù) k(0 < k <= 50)表示牛牛合法的步長數(shù),接下來的 k 行,每行兩個整數(shù) dx, dy 表示每次可選擇移動的行和列步長(-50 <= dx, dy <= 50)

輸出描述:

輸出一行一個數(shù)字表示最壞情況下需要多少次移動可以離開地牢,如果永遠無法離開,輸出 -1。以下測試用例中,牛牛可以上下左右移動,在所有可通行的位置.上,地牢出口如果被設置在右下角,牛牛想離開需要移動的次數(shù)最多,為3次。

輸入例子:

3 3 … … … 0 1 4 1 0 0 1 -1 0 0 -1

輸出例子:

3


錯誤做法如下,利用動態(tài)規(guī)劃,每個位置存儲到達此位置的最短步數(shù),這個思路的問題是,由于二維移動所以在第一遍遍歷所有點的時候會跳過一些點,這些點之后還有可能到達。這樣就會漏掉一些點。

#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;int main(){ int dungeon_rows, dungeon_cols; cin >> dungeon_rows >> dungeon_cols; //vector<vector<char>> *dung_vec=new vector<vector<char>>(dungeon_rows,vector<char>(dungeon_cols,0)); vector<vector<int>> dung_vec(dungeon_rows, vector<int>(dungeon_cols, 0)); for (int i = 0; i != dungeon_rows; ++i){ string in_put; cin >> in_put; for (int j = 0; j != dungeon_cols; ++j) { dung_vec[i][j] = in_put[j]; } } int start_cols, start_rows; cin >> start_rows >> start_cols; int step_num; cin >> step_num; vector<vector<int>> step_vec(step_num, vector<int>(2, 0)); for (int i = 0; i != step_num; ++i) { cin >> step_vec[i][0] >> step_vec[i][1]; } vector<vector<int>> dung_max_step(dungeon_rows, vector<int>(dungeon_cols, -1)); dung_max_step[start_rows][start_cols] = 0; for (int i = start_rows; i != dungeon_rows; ++i){ for (int j = start_cols; j != dungeon_cols; ++j) { if (dung_max_step[i][j] != -1) { for (int m = 0; m < step_num; ++m) { if ((0 <= (step_vec[m][0] + i) && (step_vec[m][0] + i)< dungeon_rows) && 0 <= (step_vec[m][1] + j)&&(step_vec[m][1] + j)< dungeon_cols) { if (dung_vec[i + step_vec[m][0]][j + step_vec[m][1]] == '.'&&dung_max_step[i][j] != -1) { if (dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] == -1) dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] = dung_max_step[i][j] + 1; else dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] = min(dung_max_step[i][j] + 1, dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]]); } } } } } } for (int i = 0; i != start_rows; ++i){ for (int j = 0; j != start_cols; ++j) { if (dung_max_step[i][j] != -1) { for (int m = 0; m < step_num; ++m) { if ((0 <= (step_vec[m][0] + i) && (step_vec[m][0] + i)< dungeon_rows) && 0 <= (step_vec[m][1] + j) && (step_vec[m][1] + j)< dungeon_cols) { if (dung_vec[i + step_vec[m][0]][j + step_vec[m][1]] == '.'&&dung_max_step[i][j] != -1) { if (dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] == -1) dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] = dung_max_step[i][j] + 1; else dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]] = min(dung_max_step[i][j] + 1, dung_max_step[i + step_vec[m][0]][j + step_vec[m][1]]); } } } } } } int max_step = -1; for (int i = 0; i != dungeon_rows; ++i){ for (int j = 0; j != dungeon_cols; ++j) { if(dung_max_step[i][j]==-1&&dung_vec[i][j]=='.') { cout<<-1<<endl; return 0; } if (max_step<dung_max_step[i][j]) max_step = dung_max_step[i][j]; } } cout << max_step << endl; return 0;}

可以利用廣度優(yōu)先搜素的方法進行計算

#include <iostream>#include <vector>#include <string>#include <algorithm>#include <queue>#include <climits>using namespace std;struct Point{ int x,y; Point(int _x,int _y):x(_x),y(_y){}; Point go(int m,int n) {return Point(x+m,y+n);}};int main(){ int dungeon_rows, dungeon_cols; cin >> dungeon_rows >> dungeon_cols; //vector<vector<char>> *dung_vec=new vector<vector<char>>(dungeon_rows,vector<char>(dungeon_cols,0)); vector<vector<int>> dung_vec(dungeon_rows, vector<int>(dungeon_cols, 0)); for (int i = 0; i != dungeon_rows; ++i){ string in_put; cin >> in_put; for (int j = 0; j != dungeon_cols; ++j) { dung_vec[i][j] = in_put[j]; } } int start_cols, start_rows; cin >> start_rows >> start_cols; int step_num; cin >> step_num; vector<vector<int>> step_vec(step_num, vector<int>(2, 0)); for (int i = 0; i != step_num; ++i) { cin >> step_vec[i][0] >> step_vec[i][1]; } vector<vector<int>> dung_max_step(dungeon_rows, vector<int>(dungeon_cols, INT_MAX)); dung_max_step[start_rows][start_cols] = 0; queue<Point> que; que.push(Point(start_rows,start_cols)); while(!que.empty()) { Point temp=que.front(); que.pop(); for(int i=0;i!=step_num;++i) { if(temp.x+step_vec[i][0]>=0&&temp.x+step_vec[i][0]<dungeon_rows&&temp.y+step_vec[i][1]>=0&&temp.y+step_vec[i][1]<dungeon_cols&& dung_vec[temp.x+step_vec[i][0]][temp.y+step_vec[i][1]]=='.') { if(dung_max_step[temp.x+step_vec[i][0]][temp.y+step_vec[i][1]]>dung_max_step[temp.x][temp.y]+1) { dung_max_step[temp.x+step_vec[i][0]][temp.y+step_vec[i][1]]=dung_max_step[temp.x][temp.y]+1; que.push(Point(temp.x+step_vec[i][0],temp.y+step_vec[i][1])); } } } } int max_step=-1; for (int i = 0; i != dungeon_rows; ++i){ for (int j = 0; j != dungeon_cols; ++j) { if(dung_max_step[i][j]==INT_MAX&&dung_vec[i][j]=='.') { cout<<-1<<endl; return 0; } if (dung_vec[i][j]=='.'&&max_step<dung_max_step[i][j]) max_step = dung_max_step[i][j]; } } cout << max_step << endl; return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
成人av网址在线观看| eeuss鲁片一区| 日本一级特级毛片视频| 麻豆最新免费在线视频| 欧美剧情片在线观看| 老司机aⅴ在线精品导航| 91久久综合| 91精品视频一区二区| 黄色一级片播放| 国产午夜在线| 日本亚洲色大成网站www久久| 亚洲va韩国va欧美va| 99re在线视频免费观看| 亚洲欧美色图视频| 亚洲激情在线观看| 91国产视频在线| 国产精品欧美日韩一区二区| 中文字幕日本三级| 亚洲不卡1区| 8x8ⅹ拨牐拨牐拨牐在线观看| 人禽交欧美网站免费| 国产传媒一区在线| 99久久精品久久久久久ai换脸| 免费麻豆国产一区二区三区四区| 九色在线视频蝌蚪| 三级黄色的网站| 青青草精品视频在线观看| 欧美成人午夜影院| 色老板在线视频一区二区| 999精品国产| 欧美 日韩 国产一区| 亚洲国产综合在线观看| eeuss影院www免费视频| 亚洲一级片av| 中国xxxx自拍视频| 91激情在线观看| 一区二区三区免费视频播放器| 一本加勒比北条麻妃| 亚洲一区二区精品视频| 亚洲国产欧美自拍| 亚洲永久网站| 青青草精品毛片| 成片免费观看| 国产美女在线精品免费观看| 懂色av蜜臀av粉嫩av分享吧| 国产69久久精品成人看| 国产精品高颜值在线观看| 欧美精品久久96人妻无码| 黄网视频在线观看| 手机版av在线| 亚洲欧美乱综合图片区小说区| 九色porny视频在线观看| 蜜桃91麻豆精品一二三区| 性爱在线免费视频| 蜜桃av噜噜一区二区三区麻豆| 在线看片第一页欧美| 全球最大av网站久久| 国产伦精品一区二区三区高清版| 日韩伦理福利| 天天干天天草天天| 色爱av美腿丝袜综合粉嫩av| 日本高清无吗v一区| 国产98色在线|日韩| 国产区美女在线| 国产十八熟妇av成人一区| 蜜桃视频在线观看一区| 亚洲一级特黄| yellow91字幕网在线| 你懂的在线播放| 国产日韩精品一区二区三区| 亚洲妇女无套内射精| 欧美性猛交xxxx乱大交丰满| 91精品久久久久久久久中文字幕| 国产欧美日韩在线观看视频| 亚洲欧洲av色图| 美女诱惑一区| 高清免费日韩| 欧美高清精品3d| 国产精品一品二品| 国产乡下妇女做爰| 国产精品video| 日本wwwwwwwzzzzz视频| 午夜视频在线免费| 2022国产麻豆剧果冻传媒剧情| 国产美女在线一区二区三区| 精品一区二区三区蜜桃| 天天操天天射天天插| 久久午夜鲁丝片| 少妇精69xxtheporn| 性欧美videos高清hd4k| 一区在线视频| 国产精品300页| 91精品免费视频| av在线免费观看不卡| 密臀av在线| 粉嫩喷白浆久久| 日韩免费高清视频网站| 国产一级片麻豆| 欧美日韩在线网站| 亚洲视频精选| 亚洲欧美电影| 疯狂揉花蒂控制高潮h| 亚洲特级毛片| 国产69精品久久久久孕妇| aaaaa级片| 亚洲免费在线视频一区 二区| 国产欧美日韩中文久久| 亚欧洲精品在线视频免费观看| 精品粉嫩超白一线天av| 欧美一区二区三区在| 影音先锋亚洲视频| 污片免费在线观看| 日韩av色综合| 最新日韩在线| 亚洲 欧美 另类人妖| 91狠狠综合久久久| 日本一本草久p| 日本在线观看| 91av免费观看91av精品在线| 麻豆一区区三区四区产品精品蜜桃| 亚洲视频一区二区| 亚洲制服国产| 一级欧美视频| 成人爽a毛片免费啪啪动漫| 亚洲国产精品无码av| 欧美成人午夜免费视在线看片| 久久久人成影片一区二区三区观看| 日韩在线视频免费观看高清中文| 午夜影院免费体验区| 91精品啪在线观看国产18| 四虎影视免费看电影| 老师我好爽再深一点的视频| 1000部国产精品成人观看| 日韩欧美国产高清91| 日韩av激情| 久久影音资源网| 亚洲AV第二区国产精品| ijzzijzzij亚洲大全| 日韩精品xxx| 亚洲高清在线免费| 久久久一本精品99久久精品66| 男人的天堂久久久| 亚洲天堂网站在线观看视频| 在线成人午夜影院| 国产精品xx| 99视频入口| 国产精品伦一区二区三级视频| 热re66久久精品国产99re| www.综合| 成人精品一区二区三区校园激情| 日产日韩在线亚洲欧美| 亚洲精品高清视频| 国产wwww| 色婷婷综合久久久久中文字幕| 午夜精品久久久久久久99热影院| 国产成人精品在线观看| 欧美高清视频不卡网| 亚洲免费在线视频观看| 日韩激情电影免费看| 国产成人91久久精品| 在线观看一二三区| 久久精品一区二区不卡| 亚洲欧美日韩综合精品网| 国产精品18| 中文字幕一区二区三三| 好吊妞www.84com只有这里才有精品| 成人看片黄a免费看视频| 国产欧美综合色| 亚洲第一页在线观看| 国产aⅴ2021| 色综合电影网| 日韩精品一区二区三区电影| 久久综合综合久久| 国产九九在线视频| 国产性猛交xx乱| 久久久久久成人| 色欲久久久天天天综合网| 欧美一级欧美三级| 天堂中文а√在线| 亚洲第一二三四区| 国产麻豆9l精品三级站| 国产麻豆剧传媒精品国产av| 欧美xxxxx18| 欧美中文字幕视频在线观看| 欧美激情黑人| 日韩精品视频免费播放| 佐山爱痴汉视频一区二区三区| 日韩av网址在线观看| 亚洲wwwwww| 四虎国产精品成人免费4hu| 91精品福利观看| 看片一区二区| 又骚又黄的视频| 国精品产品一区| 欧美成人免费视频| 狂野欧美激情性xxxx欧美| 欧美亚洲另类小说| 亚洲欧美日韩成人网| 日韩午夜电影网| 99久久国产综合精品成人影院| 久久精品99久久无色码中文字幕| 日韩在线不卡av| 国产巨乳在线观看| 先锋a资源在线看亚洲| 少妇高潮 亚洲精品| 一卡二卡三卡亚洲| 丁香婷婷激情网| 99久久久无码国产精品性| 另类国产精品一区二区| 欧美日韩一区二区在线观看视频| 国产日韩精品suv| 国产精品久久综合av爱欲tv| 精品一区在线| www.youjizz.com在线| 杨幂一区二区国产精品| 成人短视频在线看| 久久精品国产一区二区三区日韩| 日本一区二区三区电影| 久久精品日韩一区二区三区| 中文字幕一区二区精品区| 日韩精品一区二区三区色偷偷| 亚洲成人天堂网| 看黄在线观看| 亚洲人成在线观看网站高清| 日本蜜桃在线观看| eeuss中文字幕| 免费成人黄色| 国产精品丝袜久久久久久高清| 久久精品亚洲精品| 欧美精品国产一区二区| 91久久久精品国产| 亚洲va在线va天堂va偷拍| 久久久久久久色| 日韩男女性生活视频| 亚洲国产一成人久久精品| 国产 福利 在线| 日本少妇精品亚洲第一区| 国产精品美女www爽爽爽| japanese国产在线观看| 久久国产日韩欧美精品| 免费不卡中文字幕视频| 日本高清视频在线观看| 久久草在线视频| 国内精品在线视频| 日韩精品国产一区| 国产经典三级在线| 国产盗摄精品一区二区三区在线| а√资源新版在线天堂| 欧美电影一区二区| 国产一区二区毛片| 五月激情在线| 久久成人福利| jvid福利写真一区二区三区| 狠狠狠综合7777久夜色撩人| 国产乱码精品一区二区三区四区| 成人免费观看49www在线观看| 五月婷婷激情在线| 丰满少妇在线观看| 99久久精品国产成人一区二区| 欧美一级xxx| 成人影院www在线观看| 久久综合九色综合欧美狠狠| 性欧美video视频另类| 中文精品一区二区三区| 国产成人香蕉在线视频网站| 久久久久99| 亚洲va欧美va人人爽午夜| 男女爱爱视频免费| 国产精品日韩三级| 日本中文字幕免费| 亚洲一区二区av电影| 国产精品视频一区二区三区,| 在线播放你懂得| 麻豆精品久久久久久久99蜜桃| 亚洲一级片网站| 国内精品在线一区| 毛片在线视频| 不卡中文字幕在线| 这里只有视频精品| 国产伦理精品不卡| 久久影院一区二区| 亚洲av永久无码精品| 日韩高清在线不卡| 亚洲成人av在线影院| 国产亚洲一区二区三区不卡| 欧美在线日韩精品| 亚洲福利视频二区| 国产伦理一区| 久久综合九色九九| 欧美freesex黑人又粗又大| 艳妇臀荡乳欲伦亚洲一区| 国产日韩欧美二区| 亚洲高清av在线| 水莓100在线视频| 欧美激情极品| 亚洲成在人线在线播放| 台湾色综合娱乐中文网| 成人免费a**址| 欧美在线播放| 激情视频在线观看| 欧美一区二区三区综合| 国产在线拍揄自揄视频不卡99| 最后生还者第二季在线观看| 在线黄色国产视频| 精品无人区一区二区| 亚洲区一区二区| 色偷偷88欧美精品久久久| 国模私拍视频在线观看| 精品国产乱码一区二区三| 国内一区二区三区在线视频| 欧美性猛片xxxxx免费中国| 免费黄色网址在线| 亚洲黄色毛片| 在线免费视频福利| 男女男精品视频站| 国产精品久久久久久| 色哦色哦哦色天天综合| 亚洲wwww| 日韩一级在线视频| 这里只有精品久久| 亚州精品国产| 欧美日韩激情小视频| 男人女人拔萝卜视频| 米奇777超碰欧美日韩亚洲| 欧美羞羞视频| 欧美一区二区三区精品电影| 95精品视频| 毛片在线播放网站|