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!
  • 相关阅读:
    String painter HDU
    GCD Counting-树形DP
    XOR UVALive
    BZOJ-9-3295: [Cqoi2011]动态逆序对
    E
    Stars HDU
    二维单调队列(理想的正方形+修筑绿化带)
    P3622 [APIO2007]动物园
    COJ1160[一本通 5.3 例 1」Amount of Degrees
    [ZJOI2008]骑士
  • 原文地址:https://www.cnblogs.com/sytu/p/3871568.html
Copyright © 2011-2022 走看看