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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

7-33 地下迷宫探索 (30 分)(思路加详解)

發布時間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-33 地下迷宫探索 (30 分)(思路加详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:題目

7-33 地下迷宮探索 (30 分)

地道戰是在抗日戰爭時期,在華北平原上抗日軍民利用地道打擊日本侵略者的作戰方式。地道網是房連房、街連街、村連村的地下工事,如下圖所示。

我們在回顧前輩們艱苦卓絕的戰爭生活的同時,真心欽佩他們的聰明才智。在現在和平發展的年代,對多數人來說,探索地下通道或許只是一種娛樂或者益智的游戲。本實驗案例以探索地下通道迷宮作為內容。

假設有一個地下通道迷宮,它的通道都是直的,而通道所有交叉點(包括通道的端點)上都有一盞燈和一個開關。請問你如何從某個起點開始在迷宮中點亮所有的燈并回到起點?

輸入格式:
輸入第一行給出三個正整數,分別表示地下迷宮的節點數N(1<N≤1000,表示通道所有交叉點和端點)、邊數M(≤3000,表示通道數)和探索起始節點編號S(節點從1到N編號)。隨后的M行對應M條邊(通道),每行給出一對正整數,分別是該條邊直接連通的兩個節點的編號。

輸出格式:
若可以點亮所有節點的燈,則輸出從S開始并以S結束的包含所有節點的序列,序列中相鄰的節點一定有邊(通道);否則雖然不能點亮所有節點的燈,但還是輸出點亮部分燈的節點序列,最后輸出0,此時表示迷宮不是連通圖。

由于深度優先遍歷的節點序列是不唯一的,為了使得輸出具有唯一的結果,我們約定以節點小編號優先的次序訪問(點燈)。在點亮所有可以點亮的燈后,以原路返回的方式回到起點。

輸入樣例1:

6 8 1 1 2 2 3 3 4 4 5 5 6 6 4 3 6 1 5

輸出樣例1:

1 2 3 4 5 6 5 4 3 2 1

輸入樣例2:

6 6 6 1 2 1 3 2 3 5 4 6 5 6 4

輸出樣例2:

6 4 5 4 6 0

二 :思路

典型的DFS遍歷,但要深刻理解DFS遍歷的過程,也就是遞歸的過程,DFS中要牢記遍歷到最后一個結點程序還沒有結束,還需要返回去 去遍歷沒有訪問過的點,因為在DFS遍歷訪問鄰接點中,是按小序號來遍歷的。

三:對DFS和BFS遍歷不熟悉的可以學一下哈

DFS和BFS速遞

四:上碼

#include<bits/stdc++.h> using namespace std;typedef struct GNode* PtrGraph; typedef struct GNode{int Nv;int Ne;int Date[1001][1001]; }gnode;int visited[1001] = {0}; int cnt = 0; int N,M,K;//創建圖 void createGraph(PtrGraph G){cin >> N >> M >> K;G->Nv = N;G->Ne = M;//鄰接矩陣初始化for( int i = 1; i <= G->Nv; i++){for( int j = 1; j <= G->Nv; j++){G->Date[i][j] = 0; }} //往鄰接矩陣賦值for(int i = 1; i <= G->Ne; i++ ){int a,b;cin >> a >> b;G->Date[a][b] = 1;G->Date[b][a] = 1;} } //dfs遍歷 void DFS_Graph(PtrGraph G,int x){if (cnt == 0)cout << x;elsecout << ' ' <<x ;cnt++;visited[x] = 1;for(int i = 1; i <= G->Nv; i++ ){if( visited[i] != 1 && G->Date[x][i] == 1){DFS_Graph(G,i);cout << ' ' << x;}} } int main(){PtrGraph G = (PtrGraph)malloc(sizeof(struct GNode));createGraph(G);DFS_Graph(G,K);if( cnt != N)cout << ' ' << "0"; }

五:不明白的碼

我寫的第一個碼是用到了容器可就是最后兩個點過不去,搞不懂 ,一個是直接輸出,而我的是將輸出結果存在容器中但就是過不去 ,大佬明白請留言

/**思路:DFS遍歷 然后用兩個容器進行儲存 一個是 vector用來儲存正確的順序一個是用棧來儲存,主要是用來反序輸出 但是棧頂的元素不要*/ #include<bits/stdc++.h> using namespace std;typedef struct GNode* PtrGraph; typedef struct GNode{int Nv;int Ne;int Date[1001][1001]; }gnode;int visited[1001] = {0}; vector<int>v,v2; stack<int>s; int N,M,K;//創建圖 void createGraph(PtrGraph G){cin >> N >> M >> K;G->Nv = N;G->Ne = M;//鄰接矩陣初始化for( int i = 1; i <= G->Nv; i++){for( int j = 1; j <= G->Nv; j++){G->Date[i][j] = 0; }} //往鄰接矩陣賦值for(int i = 1; i <= G->Ne; i++ ){int a,b;cin >> a >> b;G->Date[a][b] = 1;G->Date[b][a] = 1;} } int cnt = 0; //dfs遍歷 void DFS_Graph(PtrGraph G,int x){int temp = x;v.push_back(temp);cnt++;visited[x] = 1;for(int i = 1; i <= G->Nv; i++ ){if( visited[i] != 1 && G->Date[x][i] == 1){DFS_Graph(G,i);//將返回時路保存進去 v2.push_back(temp);}} } //輸出結果 void result(){for(int i = 0; i < v.size(); i++){cout << v[i] << ' '; }for(int i = 0; i < v2.size(); i++){if(i == v2.size() - 1)cout << v2[i];elsecout << v2[i] << ' '; } } int main(){PtrGraph G = (PtrGraph)malloc(sizeof(struct GNode));createGraph(G);DFS_Graph(G,K);if(v.size() == N ){result();}else{result();cout << ' ' << "0";} }

六:總結

加油加油!

總結

以上是生活随笔為你收集整理的7-33 地下迷宫探索 (30 分)(思路加详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91成人天堂久久成人 | 在线你懂的视频 | 中文字幕一区二区三区在线视频 | 亚洲永久精品一区 | 18精品爽国产白嫩精品 | 四虎婷婷 | 国产资源在线免费观看 | 国精产品一区一区三区 | 夜夜精品一区二区无码 | 免费国产精品视频 | 黄色成年视频 | 美女av网站 | 在线免费三级 | 他揉捏她两乳不停呻吟动态图 | 精品一区二区三区人妻 | 亚洲看看| 国产尤物在线视频 | 18黄暴禁片在线观看 | 久久久社区 | 青青草97| 国产ts在线视频 | 久久久精品在线 | 三上悠亚人妻中文字幕在线 | 久久精品视频观看 | 天天射夜夜 | 女人扒开双腿让男人捅 | 最新视频在线观看 | 黑人vs日本人ⅹxxxhd | 午夜色av | 久久精品一二三区 | 欧美日韩一区二区三区电影 | 欧美亚洲综合久久 | 久久久人 | 男生裸体视频 | 一区二区三区不卡视频在线观看 | 国产高清视频 | 欧美理伦片在线播放 | 日韩中文第一页 | 亚洲av无码成人精品区 | 少妇av一区二区 | 国产99久久九九精品无码免费 | 97色吧| 91男女视频| 电影《两个尼姑》免费播放 | 香蕉911| 日本午夜免费福利视频 | 久久视频中文字幕 | 精品一级少妇久久久久久久 | 日韩欧美国产精品综合嫩v 国产小毛片 | 国产精品剧情 | a毛片大片 | 成年人看的网站 | 国产91丝袜在线播放0 | 中文字幕欧美视频 | 日本亚洲黄色 | 黄色av影视 | 少妇一级淫片免费放播放 | 久久久久久久综合色一本 | 欧美777| 91视频免费网站 | 少妇一级淫片免费视频 | 国产 中文 字幕 日韩 在线 | 中文字幕狠狠干 | 靠逼网站在线观看 | 伊人网av| 国产小视频在线 | 91porn九色 | 重口变态虐黄网站 | 性欧美精品男男 | 欧美亚洲精品在线观看 | 欧美一级二级在线观看 | 人人澡澡人人 | av五十路 | 国产在线成人精品午夜 | 日本在线有码 | 天天操欧美 | 成人免费看av | 日本久久精品视频 | 91日韩视频 | 天天插天天操 | 五月婷婷,六月丁香 | 伊人22 | 国产精品.www | 日本在线视频不卡 | 操的网站| 久久精品www| 校园春色亚洲激情 | 免费高清欧美大片在线观看 | 国产精品一二三四 | 中文字幕一区二区三区四区免费看 | 在线视频第一页 | 伊人久久青青 | 国产成人综合在线 | 精品视频免费观看 | 午夜肉伦伦 | 久久精品久久久精品美女 | 在线免费看黄 | 成人久久久精品国产乱码一区二区 | 国语对白做受欧美 |