思路:深搜判定图连通+欧拉回路判定
#include "string.h"
#include "stdio.h"
#define M 25
int a[M][M];
int visit[M];
int count,n;
int DFS (int x);
int main ()
{
m,i,j,k;
("%d %d",&n,&m)!= EOF)
memset (a,0,sizeof(a));
memset (visit,0,sizeof(visit));
count =0;
for (k = 0; k < m; k ++)
{
scanf ("%d %d",&i,&j);
a[i-1][j-1] = 1;
}
if (n == 1)
printf ("Yes\n");
else
{
if (DFS (0))
printf ("Yes\n");
else
printf ("No\n");
}
}
int DFS (int x)
{
i < n; i ++)
if (a[x][i]&&visit[i] == 0)
{
count ++;
visit[i] = 1;
DFS (i);
}
(count==n)
return 1;