时间限制: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\n");
        else
            printf("NO\n");
    }
 
    return 0;
}
/**************************************************************
    Problem: 1109
    User: liangrx06
    Language: C
    Result: Accepted
    Time:30 ms
    Memory:916 kb
****************************************************************/

最新文章

  1. 如何自动化一键部署PHP项目
  2. 斗地主——扎金花——3DMark
  3. [DBW]一个小巧的Class方案
  4. 几张图弄明白ios布局中的尺寸问题
  5. js 页面值变动监听
  6. eclipse中安装svn插件
  7. 65.OV7725图像倒置180度
  8. c语言输入与输出库函数#include&lt;stdio.h&gt;
  9. Calender设置固定时间遇到的问题
  10. Android fragment切换后onresume时报 Attempt to write to field &#39;int android.support.v4.app.Fragment.mNextAnim&#39;
  11. git配置代理
  12. 20165223《JAVA程序设计》第二周学习总结
  13. Confluence 6 找到在创建 XML 备份的时候出现的错误
  14. django 数据库查询的几个知识点
  15. (18)模型层 -ORM之msql 多表操作(字段的属性)
  16. 对怎样充分利用安卓官方开发网站的一个简单性介绍介绍-https://developer.android.google.cn/docs/
  17. Linux中MySQL中文乱码问题
  18. MVP 模式简单易懂的介绍方式
  19. Struts1简单开发流程梳理
  20. Google Congestion Control介绍

热门文章

  1. ListView列表刷新方法的区别
  2. 35深入理解C指针之---结构体基础
  3. mysql开发必知必会
  4. svn的简单知识
  5. ExcelHelper类
  6. poj 1950(搜索)
  7. Endless Pallet(min-max容斥)
  8. kettle变量使用
  9. JavaScript实现弹幕效果
  10. PyTorch学习笔记之初识word_embedding