数据结构实验之图论四:迷宫探索
来源:互联网 发布:ip地址数据库 编辑:程序博客网 时间:2024/06/04 14:10
数据结构实验之图论四:迷宫探索
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatisticDiscuss
Problem Description
有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?
Input
连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出一对正整数,表示一条边相关联的两个顶点的编号。
Output
若可以点亮所有结点的灯,则输出从S开始并以S结束的序列,序列中相邻的顶点一定有边,否则只输出部分点亮的灯的结点序列,最后输出0,表示此迷宫不是连通图。
访问顶点时约定以编号小的结点优先的次序访问,点亮所有可以点亮的灯后,以原路返回的方式回到起点。
Example Input
16 8 11 22 33 44 55 66 43 61 5
Example Output
1 2 3 4 5 6 5 4 3 2 1
#include <iostream>#include <cstdio>#include<cstring>using namespace std;#define MVN 110int visit[MVN];int count;typedef struct AdjMatrix{ int w; /*char *info;*/}AM;typedef struct MGraph{ int vex[MVN];//存储点 AM arc[MVN][MVN];//点与点是否联通 int vexn,arcn;//vexn表示点数 arcn表示边数 int s;}MG;void creat(MG &G){ int i,j,k; for(i=1;i<=G.vexn;i++) for(j=1;j<=G.vexn;j++) G.arc[i][j].w=0; for(k=1;k<=G.arcn;k++) { cin >> i >> j ; G.arc[i][j].w = G.arc[j][i].w=1; }}void DFS(MG &G,int i){ visit[i] = 1; count++; if(i==G.s) cout << i; else cout << " " << i; int k; for(k=1;k<=G.vexn;k++) if(G.arc[i][k].w==1&&visit[k]==0) { DFS(G,k); cout << " " << i;//输出的不是新找到的编号 }}int main(){ int t; cin >> t; while(t--) { MG G; cin >> G.vexn >> G.arcn >> G.s; creat(G); count = 0; memset(visit,0,sizeof(visit)); DFS(G,G.s); if(count!=G.vexn) cout << " 0"; cout << endl; } return 0;}
阅读全文
0 0
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUTOJ3361-数据结构实验之图论四:迷宫探索
- SDUT3361数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUTACM 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- OJ3361数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- C文件读写函数介绍
- RunTime.getRunTime().addShutdownHook用法
- JNI开发中链接各种类型的库的CMAKE文件写法。
- 三. 二维数组中的查找
- E
- 数据结构实验之图论四:迷宫探索
- Git常用到的基本命令
- Tang机器学习课程笔记之五(Numpy库<一>)
- 配置MyCat状态检查服务(通过xinetd)
- Xcode 创建静态库封装自己的SDK
- begalebone上的debian系统装opencv
- 推荐一个代做毕业设计的网站
- Centos之命令搜索命令whereis与which
- Java方法区、栈及堆