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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

十二、迷宫问题

發(fā)布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十二、迷宫问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

十二、迷宮問題

文章目錄

  • 十二、迷宮問題
    • 題目描述
    • 解題思路
    • 上機(jī)代碼

題目描述

迷宮有一個入口,一個出口。一個人從入口走進(jìn)迷宮,目標(biāo)是找到出口。陰影部分和迷宮的外框?yàn)閴?#xff0c;每一步走一格,每格有四個可走的方向,探索順序?yàn)榈貓D方向:南(下)、東(右)、北(上)、西(左)。

  • 輸入:輸入迷宮數(shù)組。第一行數(shù)據(jù)表示一個 n*n (n<=100)的迷宮;第二行開始的n行為迷宮數(shù)據(jù)。 其中:0表示路,1表示墻,起點(diǎn)在左上角 <1,1> 的位置,終點(diǎn)在右下角 <n,n> 的位置。

  • 輸出:若有解,輸出從入口到出口的一條路徑,否則輸出 there is no solution!

例(上圖所示的迷宮數(shù)組)

輸入:
4 4
0 0 1 0
0 1 0 1
0 0 0 0
0 1 0 0

輸出:<1,1> <2,1> <3,1> <3,2> <3,3> <4,3> <4,4>

測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程
測試用例 14 4
0 0 1 0
0 1 0 1
0 0 0 0
0 1 0 0
<1,1> <2,1> <3,1> <3,2> <3,3> <4,3> <4,4>1秒64M0
測試用例 24 4
0 0 1 0
1 0 1 1
0 0 0 1
0 1 0 1
There is no solution!1秒64M0
測試用例 38 8
0 0 0 0 0 1 0 0
1 0 1 1 0 0 0 0
0 0 0 1 1 1 0 1
0 1 1 1 0 0 0 0
0 0 0 0 1 0 1 1
1 1 0 0 0 0 0 0
0 1 1 1 0 1 0 0
0 0 0 0 0 0 0 0
<1,1> <1,2> <2,2> <3,2> <3,1> <4,1> <5,1> <5,2> <5,3> <6,3> <6,4> <6,5> <7,5> <8,5> <8,6> <8,7> <8,8>1秒64M0

解題思路

迷宮問題是大家學(xué)習(xí)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)的經(jīng)典問題之一,相信大家在參加集訓(xùn)的時候肯定都學(xué)習(xí)過了,也都有對應(yīng)的模板進(jìn)行解答。針對此題,稍微改改代碼即可找到通過迷宮的路徑。

一般的迷宮問題都是求最終的路徑長度,而此題需要輸出具體走過的路徑。因此我們設(shè)置一個輔助結(jié)構(gòu) Position 來進(jìn)行路徑的存儲,最后輸出 vector<Position> 中存儲的具體路徑即可。

考慮一種極端情況是,當(dāng)終點(diǎn)是 1 的時候,是沒有任何一條的路徑可以通向終點(diǎn)的,這種情況直接輸出 There is no solution!,但是測試用例里似乎沒有出現(xiàn)這種情況,因此下面的代碼把它注釋了。

上機(jī)代碼

#include <iostream> #include <cstdio> #include <vector> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std;int map[110][110]; //模擬迷宮 int visit[110][110];//visit標(biāo)記該位置是否走過 int n = 0, m = 0; int dx[4] = { 0,1,0,-1 }; int dy[4] = { -1,0,1,0 }; int sum = -9999; int num = 1; //設(shè)置一個輔助結(jié)構(gòu)存儲對應(yīng)路徑 struct Position {int x;int y; }; vector<Position>road; int dfs(int x, int y) {sum = max(sum, num);Position tmp;tmp.x = x;tmp.y = y;road.push_back(tmp);visit[x][y] = 1;if (x == n && y == m){sum = min(sum, num);return 1;}for (int i = 0; i<4; i++){int tx = x + dx[i];int ty = y + dy[i];if (!visit[tx][ty] && !map[tx][ty] && tx >= 1 && tx <= m && ty >= 1 && ty <= n){ //符合條件則繼續(xù)搜索num++;if (dfs(tx, ty))return 1;road.pop_back(); //返回原狀態(tài)visit[tx][ty] = 0; //返回原狀態(tài)num--;}}return 0; } int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){scanf("%d", &map[i][j]);}}// if (map[n][m] == 1)// {// printf("There is no solution!\n");// return 0;// }dfs(1, 1);if (sum<n + m - 1) { //沒有墻的話,迷宮走到終點(diǎn)的最少步數(shù)是n+m-1printf("There is no solution!\n");return 0;}else{for (int i = 0; i < road.size(); i++){printf("<%d,%d> ", road[i].x, road[i].y);}printf("\n");}return 0; }

總結(jié)

以上是生活随笔為你收集整理的十二、迷宫问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜宅男在线 | 亚洲色图制服丝袜 | 欧美日韩小说 | 性欧美最猛 | 日本福利片在线观看 | 国产网站免费在线观看 | 少妇人妻一区 | 久久久综合久久久 | 无遮挡在线观看 | 冲田杏梨在线 | 丰满少妇一区二区三区视频 | 国产精品三级电影 | 91av视频网 | 免费成人在线观看视频 | 亚洲综合p| 爱搞逼综合| 永久av在线| 污到下面流水的视频 | 日日射天天干 | 麻豆国产一区二区 | 在线高清观看免费观看 | 国产一二视频 | 肉体粗喘娇吟国产91 | 免费av福利 | 脱美女衣服亲摸揉视频 | aaa久久 | 96国产视频| 久久久久人妻一道无码AV | 美国爱爱视频 | 丝袜美女啪啪 | av中出在线 | 国产成人精品一区二区三区 | wwwxxx日韩| 亚洲欧美成人 | 国产精品四虎 | 精品不卡一区二区三区 | 国产福利小视频在线观看 | 亚洲狠 | 国产伦精品一区二区三区妓女 | 日韩夫妻性生活 | 亚洲91在线 | 久爱视频在线 | 看全色黄大色黄女片18 | 中文字幕免费高清视频 | 国产女主播在线一区二区 | 人妻熟妇又伦精品视频a | 亚洲性猛交| 中文字幕人妻丝袜二区 | 国产区一区二区三 | 五月婷婷丁香激情 | 午夜精品久久久久久久99热浪潮 | 91精品国产色综合久久不卡粉嫩 | 亚洲最大成人网色 | 交专区videossex另类 | 少妇免费直播 | 91视频免费在观看 | 羞羞动漫在线观看 | 欧美日韩国产精品一区二区三区 | 国产成人av一区二区 | 浴室里强摁做开腿呻吟男男 | 777精品久无码人妻蜜桃 | 天天看天天爽 | 久久av一区| 久久综合免费视频 | 九色国产在线 | 亚洲精品久久久久久 | 亚洲三级影视 | 亚洲精品码 | 国产在线一区二区三区 | 国产午夜福利视频在线观看 | 色老头综合网 | 中文文字幕一区二区三三 | 9色在线视频 | 妖精视频一区二区三区 | 欧美激情在线观看一区 | 韩日一级片 | 97在线观看| 成人一区二区三区仙踪林 | 变态另类一区 | √资源天堂中文在线视频 | 日本久久99 | 午夜视频入口 | 青青在线免费观看 | 亚洲少妇自拍 | 免费观看黄色网址 | 中文在线免费看视频 | 天天摸夜夜操 | 久久精品波多野结衣 | 成人在线观看一区二区三区 | 亚洲视频在线观看一区二区三区 | 97免费在线 | 亚av| 911香蕉 | 国产资源精品 | 欧美丝袜一区二区三区 | 污黄网站在线观看 | aaa级片 | 欧美精品久久久久久久 | 爱啪啪av |