当前位置: 代码迷 >> 综合 >> ***1087. 地下迷宫探索
  详细解决方案

***1087. 地下迷宫探索

热度:46   发布时间:2023-12-06 11:23:09.0

题目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#define maxn 11111
using namespace std;
vector<int> a[maxn];
int x,y;
int n,m,s;
int ans[maxn];
int cnt=1,res=1;
bool visited[maxn];
int dfs(int x)
{
    if(visited[x]) return 0;ans[cnt]=x;cnt++;visited[x]=true;for (auto to:a[x]){
    if (dfs(to)) {
    ans[cnt]=x;cnt++;}}return 1;
}
int main()
{
    cin>>n>>m>>s;for(int i=1;i<=m;i++){
    cin>>x>>y;a[x].push_back(y);a[y].push_back(x);}for(int i=1;i<=n;i++) sort(a[i].begin(),a[i].end());dfs(s);for(int i=1;i<=n;i++){
    if(visited[i]==0){
    res=0;break;} }//cout<<"res="<<res<<endl;for(int i=1;i<cnt;i++) cout<<ans[i]<<" ";if(res==0)    cout<<0<<endl;return 0;
}
  相关解决方案