SDUT 数据结构实验之图论四:迷宫探索 (DFS)
来源:互联网 发布:淘宝客服介入处理时间 编辑:程序博客网 时间:2024/05/01 07:14
DFS收索所有的经过路径。且注意当返回时直接v进入数组即可。
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<cmath>#include<math.h>#include<ctime>#include<set>#include<cstdlib>#include<map>#include<algorithm>#define LL long longusing namespace std ;bool vis[100000];bool Map[1000][1000];int ans,vex[1000000],n,f[10000],cnt;int bj;void dfs1(int v){ vex[ans++]=v; vis[v]=true; for(int i=1; i<=n; i++) { if(!vis[i]&&(Map[v][i]) ) { dfs1(i); //vis[i]=false; vex[ans++]=v; } }}int fi(int r){ return r==f[r]?r:f[r]=fi(f[r]);}void mer(int a,int b){ int x=fi(a); int y=fi(b); if(x>y) f[x]=y; else f[y]=x;}int main(){ int m,i,j,k; int cla,a,b,s; scanf("%d",&cla); while(cla--) { scanf("%d%d%d",&n,&m,&s); for(i=1; i<=n; i++) f[i]=i; // memset(head,-1,sizeof(head)); memset(vis,false,sizeof(vis)); cnt=ans=0; memset(Map,false,sizeof(Map)); for(i=0; i<m; i++) { scanf("%d%d",&a,&b); Map[a][b]=Map[b][a]=true; mer(a,b); } int tmp=0; for(i=1; i<=n; i++) if(f[i]==i) tmp++; dfs1(s); if(tmp==1) { for(i=0; i<ans; i++) i==ans-1?printf("%d\n",vex[i]):printf("%d ",vex[i]); } else { for(i=0; i<ans; i++) printf("%d ",vex[i]); printf("0\n"); } } return 0;}
0 0
- SDUT 数据结构实验之图论四:迷宫探索 (DFS)
- sdut oj3361 数据结构实验之图论四:迷宫探索(DFS)
- SDUT 3361 数据结构实验之图论四:迷宫探索(DFS)
- SDUT 3361-数据结构实验之图论四:迷宫探索(dfs)
- [SDUT](3361) 数据结构实验之图论四:迷宫探索 ---DFS(图)
- 数据结构实验之图论四:迷宫探索dfs
- SDUT 3361 数据结构实验之图论四:迷宫探索
- SDUT OJ 3361 数据结构实验之图论四:迷宫探索
- SDUT-3361 数据结构实验之图论四:迷宫探索
- sdutoj 3361 数据结构实验之图论四:迷宫探索(dfs)
- 数据结构实验之图论四:迷宫探索(邻接表与DFS)
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- SDUTOJ3361-数据结构实验之图论四:迷宫探索
- SDUT3361数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之图论六:村村通公路
- C/C++——头文件重复包含问题
- [leetcode] 96. Unique Binary Search Trees
- ld: framework not found -fobjc-arc
- ZJU 3469(区间DP)
- SDUT 数据结构实验之图论四:迷宫探索 (DFS)
- 网络多线程-NSOperation的常用的方法
- 1015. Reversible Primes (20)
- java基础之IO流
- lamport一次签名的C语言简单实现
- 虚拟机,yum命令报错
- 网络多线程-NSOperation操作依赖和监听
- 一周优化总结
- Git远程操作