zoukankan      html  css  js  c++  java
  • hdu1878-并查集,欧拉回路

    纯裸题。。写着方便理解。。。

    题意:判断一个无向图是否存在欧拉回路。。。

    解题思路:并查集判断一下是否联通,然后再判断一下点的度数是否为偶数就行了;

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #define maxn 2010
    using namespace std;
    int f[maxn];
    int findf(int x)
    {
        if(f[x]==x)
            return x;
        else return findf(f[x]);
    }
    void join(int x,int y)
    {
        int t1,t2;
        t1=findf(x);
        t2=findf(y);
        if(t1!=t2)
            f[t2]=t1;
    }
    int main()
    {
        int n;
        int degree[maxn];
        int m;
        int cnt;
        int x,y;
        int flag;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            if(n==0)
                break;
            cnt=0,flag=0;
            memset(degree,0,sizeof(degree));
            for(int i=1;i<=n;i++)
                f[i]=i;
            for(int i=1;i<=m;i++)
            {
                scanf("%d%d",&x,&y);
                join(x,y);
                degree[y]++;
                degree[x]++;
            }
            for(int i=1;i<=n;i++)
            {
                if(f[i]==i)
                    cnt++;
            }
            for(int i=1;i<=n;i++)
            {
                if(degree[i]%2==1)
                    flag=1;
            }
            if(cnt==1&&flag==0)
                printf("1
    ");
            else
                printf("0
    ");
        }
        return 0;
    }
  • 相关阅读:
    hadoop
    flume
    IP地址查询
    flinkStreamSQL
    StreamSets
    Algorightm----DynamicProgramming
    google
    vue学习
    使用Webstorm快速启动Vue项目配置
    数据库——关系代数中的除法运算【转】
  • 原文地址:https://www.cnblogs.com/huangdao/p/8451249.html
Copyright © 2011-2022 走看看