zoukankan      html  css  js  c++  java
  • acm1878欧拉回路

    欧拉回路解释

    对于本题我们只要把每个点的度进行记录,判断是否存在奇数度的点,如果是就可以判断不是欧拉回路,如果不是就在一个点出发,进行dfs搜索,

    看能否走到起点,因为对于欧拉回路是一个闭合的回路,无论在哪个点出发都应当可以走回起点,所以一次性遍历必将经过每个点,如果出现没有

    走过的点,则不是欧拉回路。

     1 #include<iostream> 
     2 #include<cstring>
     3 using namespace std;
     4 const int maxn=1200;
     5 int degree[maxn];
     6 int vis[maxn];
     7 int maze[maxn][maxn];
     8 int n,m;
     9 void dfs(int i)
    10 {
    11     vis[i]=1;
    12     for(int j=1;j<=n;j++)
    13     {
    14         if(!vis[j]&&maze[i][j])
    15         {
    16             dfs(j);
    17         }
    18     }
    19     return;
    20 }
    21 int main()
    22 {
    23 
    24     int a,b;
    25     while(cin>>n&&n)
    26     {
    27         bool flag=false;
    28         cin>>m;
    29         memset(degree,0,sizeof(degree));
    30         memset(maze,0,sizeof(maze));
    31         memset(vis,0,sizeof(vis));
    32         for(int i=1;i<=m;i++)
    33         {
    34             cin>>a>>b;
    35             maze[a][b]=maze[b][a]=1;
    36             degree[a]++;
    37             degree[b]++;
    38         }
    39         for(int i=1;i<=n;i++)
    40         {
    41             if(degree[i]%2==1)
    42                 flag=true;
    43         }
    44         if(flag)
    45         {
    46             cout<<0<<endl;
    47             continue;
    48         }
    49         int p=0;
    50         for(int i=1;i<=n;i++)
    51         {
    52             if(!vis[i])
    53             {
    54                 p++;
    55                 dfs(i);
    56             }
    57         }
    58         if(p==1)cout<<1<<endl;
    59         else cout<<0<<endl; 
    60     }
    61     return 0;
    62 }
    What I don't dare to say is I can't!
  • 相关阅读:
    单链表的算法
    顺序表的算法
    程序员的内功——数据结构和算法系列
    查找一 线性表的查找

    排序算法系列
    排序三 直接插入排序
    排序八 基数排序
    Linux编程 9 (shell类型,shell父子关系,子shell用法)
    mysql 开发进阶篇系列 41 mysql日志之慢查询日志
  • 原文地址:https://www.cnblogs.com/sytu/p/3871568.html
Copyright © 2011-2022 走看看