zoukankan      html  css  js  c++  java
  • NYIST OJ 题目42 一笔画问题

    水题。无向图欧拉通路的判定。用并查集判定是不是连通图!

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    
    const int maxn = 1000 + 10;
    int tott[maxn];
    int father[maxn];
    
    int find(int x)
    {
        if (x != father[x]) father[x] = find(father[x]);
        return father[x];
    }
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while (T--)
        {
            int i, n, m, u, v;
            scanf("%d%d", &n, &m);
            for (i = 0; i <= n; i++) father[i] = i;
            memset(tott, 0, sizeof(tott));
            for (i = 0; i < m; i++)
            {
                scanf("%d%d", &u, &v);
                int fu = find(u);
                int fv = find(v);
                if (fu != fv) father[fu] = fv;
                tott[u]++;
                tott[v]++;
            }
            int ji = 0, ou = 0;
            for (i = 1; i <= n; i++)
            {
                if (tott[i] == 0) continue;
                if (tott[i] % 2 == 0) ou++;
                else ji++;
            }
            int jieguo = 0;
            int th = find(1);
            for (i = 2; i <= n; i++)
            {
                int tg = find(i);
                if (tg != th) break;
            }
            if (i == n + 1) jieguo = 1;
            if (jieguo == 1)
            {
                if (ji == 0 || ji == 2) jieguo = 1;
                else jieguo = 0;
            }
            if (jieguo == 1) printf("Yes
    ");
            else printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    第06组Alpha冲刺(4/6)
    第06组Alpha冲刺(3/6)
    第06组Alpha冲刺(2/6)
    第06组 Alpha冲刺 (1/6)
    08-js函数
    07-数组
    06-js分支
    05-js运算符
    04-js变量
    03-css3D转换
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4592964.html
Copyright © 2011-2022 走看看