数据结构实验之图论四:迷宫探索
2019-01-05 15:56
92 查看
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?
Input
连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出一对正整数,表示一条边相关联的两个顶点的编号。
Output
若可以点亮所有结点的灯,则输出从S开始并以S结束的序列,序列中相邻的顶点一定有边,否则只输出部分点亮的灯的结点序列,最后输出0,表示此迷宫不是连通图。
访问顶点时约定以编号小的结点优先的次序访问,点亮所有可以点亮的灯后,以原路返回的方式回到起点。
Sample Input
1 6 8 1 1 2 2 3 3 4 4 5 5 6 6 4 3 6 1 5
Sample Output
1 2 3 4 5 6 5 4 3 2 1
Hint
Source
xam
[code]#include<bits/stdc++.h> using namespace std; int b[1001]; //b数组用来存放要输出的值 int a[1001][1001],book[1001]; //a数组用来存放点与点之间的连接情况,通为1,不通为0 int sum,k,n; //book数组用做标记 void dfs(int s) //dfs深度优先搜做 { book[s]=1; sum++; //递归调用了几次sum就为几,到最后sum如果小于总结点数n的话 //就表明此图不是连通图,即在下面的for循环中没有符合条件的通路 b[k++]=s; //边走边存,下标从0开始,每次的s就是一个新的节点 for(int i=1;i<=n;i++) { if(a[s][i]==1&&book[i]==0)//判断满足条件的通路 { dfs(i); //再从该通路开始DFS b[k++]=s; //回溯的过程 } } } int main() { int u,v,t,m,s; cin>>t; while(t--) { memset(a,0,sizeof(a)); memset(book,0,sizeof(book)); memset(b,0,sizeof(book)); cin>>n>>m>>s; for(int i=1;i<=m;i++) { cin>>u>>v; a[u][v]=a[v][u]=1; } sum=0; k=0; dfs(s); for(int i=0;i<k;i++) { if(i==0) cout<<b[i]; else cout<<" "<<b[i]; } if(sum<n) cout<<" "<<"0"<<endl; else cout<<endl; } return 0; } /*这题有点毛病啊好像 数据如下时:5 4 1(这里没有输入组数) 1 2 2 3 3 5 2 4 输出结果为1 2 3 5 3 2 4 2 1 这是原路返回?递归回溯的过程中导致混乱,看来题目要求也没那么严格,或许是我没看清题??? */ /*************************************************** User name: ACM18171信科1801张林 Result: Accepted Take time: 0ms Take Memory: 2064KB Submit time: 2019-01-05 15:26:48 ****************************************************/
相关文章推荐
- 数据结构实验之图论四:迷宫探索
- SDUT OJ 3361 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUT 3361 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUTOJ3361-数据结构实验之图论四:迷宫探索
- SDUT 3361 数据结构实验之图论四:迷宫探索(DFS)
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUT-3361 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索(超详细解释)
- 3364-数据结构实验之图论四:迷宫探索
- 3361 数据结构实验之图论四:迷宫探索
- 3361数据结构实验之图论四:迷宫探索
- SDUT_3361_数据结构实验之图论四:迷宫探索
- sdutoj 3361 数据结构实验之图论四:迷宫探索(dfs)
- 数据结构实验之图论四:迷宫探索