zoukankan      html  css  js  c++  java
  • 杭电 1878 欧拉回路

    Description

    欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?

    Input

    测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结 
    束。

    Output

    每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。 

    Sample Input

    3 3
    1 2
    1 3
    2 3
    3 2
    1 2
    2 3
    0

    Sample Output

    1
    0

    判断每个点的度数都是偶数,并且没有独立的点就是欧拉回路。

     1 #include<cstdio>
     2 #include<string.h>
     3 int n,m,cnt,key,a,b,fa[1010],d[1010],i;
     4 int find(int a)
     5 {
     6     if(a == fa[a])
     7     {
     8         return a;
     9     }
    10     else
    11     {
    12         return fa[a]=find(fa[a]);
    13     }
    14 }
    15 void f1(int x,int y)
    16 {
    17     int nx,ny;
    18     nx=find(x);
    19     ny=find(y);
    20     if(nx != ny)
    21     {
    22         fa[ny]=nx;
    23     }
    24 }
    25 int main()
    26 {
    27     while(scanf("%d",&n) && n)
    28     {
    29         memset(d,0,sizeof(d));                //数组清零 
    30         for(i = 1 ; i <= n ; i++)
    31         {
    32             fa[i]=i;
    33         }
    34         scanf("%d",&m);
    35         for(i = 0 ; i < m ; i++)
    36         {
    37             scanf("%d %d",&a,&b);
    38             d[a]++;                    
    39             d[b]++;                    //记录每个点的度数 
    40             f1(a,b);    
    41         }
    42         cnt=0;key=0;
    43         for(i = 1 ; i<= n ; i++)
    44         {
    45             if(d[i] % 2)        //判断每个点都是偶度 
    46             {
    47                 key=1;
    48             }
    49             if(i == fa[i])        //判断没有独立的点 
    50             {
    51                 cnt++;
    52             }
    53         }
    54         if(cnt == 1)                //没有独立的点 
    55         {
    56             if(key == 0)            //每个点的度数都是偶数 
    57             {
    58                 printf("1
    ");
    59             }
    60             else
    61             {
    62                 printf("0
    ");
    63             }
    64         }
    65         else
    66         {
    67             printf("0
    ");
    68         }
    69     }
    70  } 
    ——将来的你会感谢现在努力的自己。
  • 相关阅读:
    MysqlServer如何实现成功卸载,并成功安装
    win7安装xampp,提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)
    (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除
    (转)SVN 服务端、客户端安装及配置、导入导出项目
    正则表达式详解
    Struts2.3.4+Hibernate4.2.4+Mysql6.0整合
    CSS中TRBL和position关系
    const typedef #define
    数组的替代品
    输入
  • 原文地址:https://www.cnblogs.com/yexiaozi/p/5725923.html
Copyright © 2011-2022 走看看