• 九度OJ 1109:连通图 (最小生成树)


    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:2783

    解决:1432

    题目描述:

        给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。

    输入:

        每组数据的第一行是两个整数 n 和 m(0<=n<=1000)。n 表示图的顶点数目,m 表示图中边的数目。如果 n 为 0 表示输入结束。随后有 m 行数据,每行有两个值 x 和 y(0<x, y <=n),表示顶点 x 和 y 相连,顶点的编号从 1 开始计算。输入不保证这些边是否重复。

    输出:

        对于每组输入数据,如果所有顶点都是连通的,输出"YES",否则输出"NO"。

    样例输入:
    4 3
    1 2
    2 3
    3 2
    3 2
    1 2
    2 3
    0 0
    
    样例输出:
    NO
    YES
    来源:
    2011年吉林大学计算机研究生机试真题

    思路:

    最基本的最小生成树。


    代码:

    #include <stdio.h>
    #include <string.h>
     
    #define N 1000
     
    int id[N+1];
    int n;
    int count;
     
    void init()
    {
        for (int i=1; i<=n; i++)
            id[i] = i;
        count = n;
    }
     
    void combine(int a, int b)
    {
        if (id[a] == id[b])
            return ;
        else
        {
            int tmp = id[b];
            for (int i=1; i<=n; i++)
            {
                if (id[i] == tmp)
                    id[i] = id[a];
            }
            count --;
        }
    }
     
    int main(void)
    {
        int m;
        int i;
        int a, b;
     
        while (scanf("%d%d", &n, &m) != EOF && n)
        {
            init();
     
            for (i=0; i<m; i++)
            {
                scanf("%d%d", &a, &b);
                combine(a, b);
            }
     
            if (count == 1)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1109
        User: liangrx06
        Language: C
        Result: Accepted
        Time:30 ms
        Memory:916 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    爬虫 效率
    Scrapy 数据存储 图片和文件
    装饰器
    Django 项目部署测试
    Django 项目部署
    Django JS
    三十九、管理信息系统 第三部分 作业
    三十八、模型分离(选做)
    三十七、密码保护
    三十六、实现搜索功能
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083923.html
Copyright © 2020-2023  润新知