⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfs.cpp

📁 自作的浏览器
💻 CPP
字号:
#include<iostream>
#define maxn 20
using namespace std;

bool edge[maxn][maxn];
bool flag[maxn];
int traval[maxn];
int n;

void init()
{
   int i,j,u,v,m;
   scanf("%d%d",&n,&m);
   memset(edge,false,sizeof(edge));
   while(m--)
   {
       scanf("%d%d",&u,&v);
       edge[u][v]=true;      
   }  
   return ;   
}

void dfs(int t,int d)
{
     int i; 
  traval[d]=t;   
   if(d==n-1)
   {
      if(traval[n-1]==n-1)
      {
      for(i=0;i<n;i++)
      cout<<traval[i]<<" ";
      cout<<endl; 
      }  
      return ;     
   }
  
   for(i=1;i<n;i++)
   if(!flag[i]&&edge[t][i])
   {
      flag[i]=true;
      dfs(i,d+1);
      flag[i]=false;            
   }
   return ;
}
void solve()
{
   int i;
   memset(flag,false,sizeof(flag)); 
   flag[0]=true;
   traval[0]=0;
   for(i=1;i<n;i++)
   if(edge[0][i])
   {
   flag[i]=true;
   dfs(i,1);
   flag[i]=false;
   }
   return ;    
}
int main()
{
   init();
   solve();
   system("pause");
   return 0;  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -