现在的位置: 首页 > 综合 > 正文

noj 1889 - 佳佳的旅行计划 (欧拉…

2018年03月17日 ⁄ 综合 ⁄ 共 807字 ⁄ 字号 评论关闭
题意:有n座城市,之间有m条路,每条路连接其中的两座城市,佳佳从其中一座城市出发,经过所有的m条路一次且仅一次,最后回到出发的那座城市。佳佳想知道这个旅行计划能否实现。

思路:深搜判定图连通+欧拉回路判定

#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 ()
{
    int
m,i,j,k;
    while (scanf
("%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)  //判定连通性
{
    int i;
    for (i = 0;
i < n; i ++)
    {
       
if (a[x][i]&&visit[i] == 0)
       
{
           
count ++;
           
visit[i] = 1;
           
DFS (i);
       
}
    }
    if
(count==n)
       
return 1;
    else

抱歉!评论已关闭.