日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 學院 > 開發設計 > 正文

網易編程題 逃脫地牢

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

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

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

輸出描述:

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

輸入例子:

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

輸出例子:

3


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

#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;}

可以利用廣度優先搜素的方法進行計算

#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;}
上一篇:JDBC連接MySQL數據庫

下一篇:std::function

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产黄色片大全| 日韩视频一区在线观看| 国产导航在线| 久久91精品久久久久久秒播| 国产www.大片在线| 99视频在线看| 国产欧美日韩综合精品| 99精品在线播放| 一本一道久久a久久精品综合蜜臀| 国产在成人精品线拍偷自揄拍| 欧美久久久精品| 国产高清在线一区| 日韩视频在线免费看| 日韩在线视频中文字幕| 亚洲综合日韩中文字幕v在线| 日韩欧美中文在线| 亚洲一区在线观看免费| 一本一道综合狠狠老| 国产免费久久久| 亚洲最新永久观看在线| 欧美一级久久| 欧美日韩国产在线看| 欧美亚洲国产日韩2020| 国产精久久久久| 国产精品福利视频一区二区三区| 久精品在线观看| 成人禁用看黄a在线| 中文字幕日韩国产| 欧美日韩精品中文字幕| www.老鸭窝.com| 亚洲国产欧美久久| 国产日产一区二区| 欧美日韩国产高清| 日本一级一片免费视频| 欧美日韩在线综合| 999精品网| 91精品国产欧美日韩| wwwav91com| 日韩亚洲欧美中文高清在线| 日韩欧美在线看| 国产成人综合精品| 亚洲九九精品| 中文字幕日韩国产| 日本亚洲欧美三级| 国产婷婷一区二区| 欧美日韩亚洲不卡| 亚洲丝袜一区| 日韩av综合在线观看| 亚洲欧美中文字幕| 国产三级做爰在线观看| 国产在线精品日韩| 欧美日韩视频在线| 欧美激情一区二区在线| 中文字幕亚洲乱码| 欧美日韩国产观看视频| 一区二区三区免费看视频 | 日韩国产欧美亚洲| 日韩久久精品成人| 中文在线日韩| 日韩中文首页| 久久婷婷亚洲| 二区中文字幕| 精品人妻一区二区三区视频| 日韩国产亚洲欧美| 天天摸日日摸狠狠添| 91麻豆精品在线| 国产日韩精品在线| 一区二区视频免费看| 日韩精品视频在线观看视频| 91精品久久久久久蜜臀| 欧美日韩精品在线| 在线不卡日本| 国产乱国产乱老熟300部视频| 成人禁用看黄a在线| 一级特黄大欧美久久久| 91精品国产91久久| 亚洲综合日韩欧美| 中文字幕日韩国产| 在线日韩欧美| 欧美日韩人人澡狠狠躁视频| 欧美日韩精品三区| 日本一欧美一欧美一亚洲视频| 欧美亚洲免费高清在线观看| 中文字幕视频一区二区三区久| 亚州黄色一级| 日韩欧美色综合网站| 日韩欧美国产网站| 亚洲狠狠婷婷综合久久久久图片| 色妇色综合久久夜夜| 精品久久久视频| 精品久久久三级| 亚洲а∨精品天堂在线| 国产欧美日韩中文久久| av免费观看网站| 一区二区三区四区五区视频在线观看| 日韩wumaV| 精品久久在线| 在线亚洲人成| 中文字幕日韩在线视频| 中文字幕国产欧美| 欧美 日韩 中文字幕| 欧美日韩中文另类| 在线免费视频一区二区| а√天堂中文在线资源8| 久久精品国产91精品亚洲| 日本免费在线视频不卡一不卡二| 一级特黄aaa大片在线观看| 亚洲素人一区二区| 国产日韩1区| 免费国产h视频在线观看86| 色屁屁一区二区| 麻豆一区二区99久久久久| 中文字幕4区| 欧美日韩在线不卡视频| 欧美日韩精品电影| 日韩欧美在线看| 日韩欧美在线视频日韩欧美在线视频| 欧美日韩尤物久久| 亚洲精华国产欧美| 高清一区二区| 一区二区不卡在线播放| 精品久久久网| 亚洲热线99精品视频| 日韩在线播放一区二区| 三级网站免费观看| 日韩精品在线免费看| 欧美高清一级片在线| 一区二区在线高清视频| 精品日韩在线| 精品国产999| 国产欧美日韩中文久久| 一本一道久久a久久精品综合蜜臀| 亚洲第一视频网站| 日本一欧美一欧美一亚洲视频| 91精品国产全国免费观看 | 亚洲久草视频| 九七久久人人| 国产在线日韩欧美| 日韩欧美99| 国产中文在线| 精品无人国产偷自产在线| 久久久精品午夜少妇| 亚洲第一精品在线| 影音先锋一区二区资源站| 亚洲欧洲一区二区天堂久久| 久久99久久久欧美国产| 国产欧美日韩中文| 伊人国产视频| 欧美一级在线免费| 蜜桃久久av一区| 国产免费久久久| 国产欧美久久久精品影院| 国产字幕在线看| 国产在线观看精品| 在线精品日韩| 国产欧美日韩在线| 在线观看av的网站| 亚洲高清不卡一区| 亚洲热线99精品视频| 国产福利免费观看| 久久久久久91| 欧美日韩日本视频| 欧美日韩国产一区在线| 日韩精品首页| 国产福利一区二区在线精品| 国产香蕉精品视频| 欧美日韩国产不卡| 国产一区在线观看视频| 欧美日韩亚洲综合在线| 蜜桃久久av| 99视频一区| 欧美日韩国产999| 91精品国产欧美日韩| 中文字幕日韩视频| 日韩av一区二区在线观看| 亚洲一级影院| av不卡免费看| 在线视频国内一区二区| 精品在线一区二区三区| 精品久久香蕉国产线看观看gif| 蜜桃久久久久| 国产亚洲欧美中文| 欧美日韩视频在线| 中文字幕在线视频日韩| 国产成人精品网址| 亚洲电影中文字幕在线观看| 久久99蜜桃精品| 欧美激情一区二区在线| 国产午夜精品视频免费不卡69堂| 精品久久久视频| 精品中文字幕在线| 国产在线黄色片| 久久精品99国产国产精| 亚洲一区在线观看视频| 久久久久久欧美| 久久99蜜桃精品久久久久小说| 国产日韩1区| 欧美日韩精品中文字幕| 国产在线不卡av| 欧美日韩国产高清| 一本久久a久久精品亚洲| 91精品在线免费| 中文字幕 欧美 日韩| 日韩欧美一级在线播放| 国产欧美日韩中文字幕在线| 日韩精品三级| 亚洲第一香蕉网| 一本久久a久久精品亚洲| 中文字幕欧美日韩在线不卡| 久久精品免费在线观看| 中文字幕 亚洲一区| 国产久卡久卡久卡久卡视频精品| 欧美一级日韩一级| 国产激情在线播放| 亚洲二区自拍| 欧美在线日韩| 欧美日本精品在线| 免费高清在线一区| 日韩精品久久久| 在线欧美日韩国产| 国产日韩综合| 午夜国产在线视频| 国产又粗又猛又爽又黄91精品| 国产在线拍揄自揄拍| 国产一区三区三区| 亚洲制服一区| av免费在线播放| 欧美成人二区| 亚洲视频一二三四| 欧美 日韩 国产在线| 亚洲欧洲一区二区天堂久久| 欧美亚洲国产日韩2020| 亚洲一区精品在线| 日韩欧美高清在线视频| 一区二区三区高清在线| 国产欧美自拍一区| 日韩视频在线免费播放| 一级日韩一级欧美| 在线亚洲免费| 欧美日韩综合高清一区二区| 国产日韩亚洲欧美| 亚洲第一福利视频在线| 美女黄a一级视频| 最近高清中文在线字幕在线观看| 黄色国产网站在线观看| 樱花草www在线观看| 日韩不卡一区二区| 日韩欧美在线字幕| 天天综合色天天| 国产亚洲视频中文字幕视频| xxxxx性| 九色蝌蚪视频在线| 91精品国产综合久久香蕉最新版| 久久麻豆视频| 精产国产伦理一二三区| 精品视频1区2区3区| 日韩亚洲国产欧美| 欧美日韩一区二区在线视频| 欧美日韩高清不卡| 日韩中文欧美| 91精品国产高清久久久久久| 91精品久久久久久久久| 日韩1区在线| 久久欧美中文字幕| 精品999在线| 一区二区不卡久久精品| 精品在线网站观看| 国产在线播放一区二区| 一区免费视频| 欧美久久综合性欧美| 精品视频三区| 国产小视频在线观看免费| 不卡一二三区| 日韩视频在线观看视频| 国产在线精品日韩| 日韩欧美一级在线播放| 欧美日韩国产专区| 久久精品不卡| 欧美日韩在线视频免费观看| 精品在线网站观看| 午夜国产福利在线观看| 日韩欧美国产免费| 欧美日韩国产在线| 日韩精品a在线观看91| 中文字幕五月天| 日韩在线中文字幕| 日韩精品在线免费播放| 香蕉视频亚洲一级| 欧美一级手机免费观看片| 精品中文字幕视频| 亚洲高清视频一区| 欧美日韩国产一区中文午夜| aa国产成人| 中文字幕无线码一区| 91精品999| 日韩免费高清一区二区| 日韩精品大片| 99精品人妻国产毛片| 欧美国产亚洲一区| 人人做人人澡人人爽欧美| 欧美精选午夜久久久乱码6080| 亚洲大片免费看| 日本不卡高清视频一区| 一区二区在线高清视频| 91精品国产综合久久久久久漫画| 在线综合 亚洲 欧美中文字幕| 中文字幕五月欧美| 亚洲人线精品午夜| 欧美日韩国产综合视频在线观看| 日韩精品在线视频| 欧美日韩性视频在线| 欧美日韩国产一二| 99精品在线播放| 91精品国产91久久久久久三级| 在线免费91| 亚洲.国产.中文慕字在线| 欧美三级视频在线| 日本中文字幕在线观看| 国产视频一区二| 日韩中文在线中文网三级| 亚洲综合在线不卡| 在线观看免费国产小视频| 日韩免费精品| 日本亚洲欧美三级| 一区二区精品| 99精品999| 国产成人精品三级| 国产精品视频福利一区二区| 免费一级欧美在线观看视频| 欧美日韩精品在线视频| 中文字幕 亚洲视频| 日韩视频免费直播| 久久婷婷中文字幕| aaa欧美日韩| 中文字幕4区| 精品成人久久久| 日韩欧美字幕| 日韩欧美国产亚洲| 精品在线一区二区三区| 久久精品卡一| 中文字幕欧美人妻精品一区蜜臀| 久久福利视频一区二区| av中文网站| 亚洲视频在线观看日本a| 亚洲欧美中文在线视频| 日韩中文字幕亚洲| 国产调教精品| 中文字幕在线视频精品| 色猫猫国产区一区二在线视频 | 亚洲高清视频一区| 日韩av不卡在线观看| 影音先锋一区二区资源站| 国产福利第一页| 国产高清不卡av| 欧美日韩综合视频网址| 国产丝袜欧美中文另类| 日韩精品视频在线播放| 欧美日韩在线综合| 欧美日韩在线三级| 日韩精品高清不卡| 精品网站999| 99热最新网址| 亚洲欧美伊人| 国产欧美一级| 一区三区二区视频| 欧美日韩国产一区| 亚洲伊人婷婷| 搞黄在线观看| 日韩精品三级| 日韩精品在线免费播放| 国产一二三精品| 91精品国产91久久久久青草| 日韩在线高清视频| 影音先锋一区二区资源站| 成人一区而且| 亚洲欧美中文在线视频| 韩国av一区二区| 欧美日韩高清一区二区| 成人ww免费完整版在线观看| 精品日韩99亚洲| 91精品国产91久久久久| 国产激情三区| 在线不卡一区二区| 国产最顶级的黄色片在线免费观看| 日韩精品第一区| 日韩精品大片| 亚洲黄色www| 色国产在线视频| 久久精品在线免费观看| 亚洲社区在线| 91麻豆精品国产91久久久使用方法 | 91精品国产91久久久久久不卡| 欧美成人精品在线| 日韩在线二区| 中文字幕亚洲乱码| 中文字幕精品在线| 日韩在线精品| 国产香蕉精品视频| 中文字幕精品在线视频| 日本亚洲欧美三级|