/***********************************
题目描述:
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
输入:
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。
注意:两个城市之间可以有多条道路相通,也就是说
3 3
1 2
1 2
2 1
这种输入也是合法的
当N为0时,输入结束,该用例不被处理。
输出:
对每个测试用例,在1行里输出最少还需要建设的道路数目。
样例输入:
4 2
1 3
4 3
3 3
1 2
1 3
2 3
5 2
1 2
3 5
999 0
0样例输出:
1
0
2
998
***************************************/
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
const int N = 1000 + 10;
int p[N];
int find(int x);
int main()
{
int n, m;
#ifndef ONLINE_JUDGE
ifstream cin("e:\\uva_in.txt")    ;
#endif
while (cin >> n, n) {
cin >> m;
memset(g, 0x00, sizeof(g));
memset(p, -1, sizeof(p));
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
int pa = find(a);
int pb = find(b);
if (pa != pb)
p[pb] = pa;
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (p[i] == -1)
ans++;
}
cout << ans  - 1 << endl;
}
return 0;
}
int find(int x)
{
return (p[x] == -1) ? x : (p[x] = find(p[x]));
}

题目1012:畅通工程相关推荐

  1. 畅通工程//最小生成树prim

    题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...

  3. HDOJ 1875 HDU 1875 畅通工程再续 ACM 1875 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=1875 ...

  4. 畅通工程 hdu 1232 HDU - 1863 (并查集+最小生成树)

    畅通工程hdu 1232 并查集 Problem Description Input Output 参考代码 HDU - 1863 Problem Description Input Output 参 ...

  5. 题目1028:继续畅通工程

    /********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

  6. 题目1024:畅通工程

    /* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建 ...

  7. 题目1017:还是畅通工程(最小生成树初步应用)

    题目链接:http://ac.jobdu.com/problem.php?pid=1017 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  8. 九度oj 题目1028:继续畅通工程

    题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...

  9. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

最新文章

  1. SQL Server 2005即将终止服务 你准备好了么?
  2. 新近爆出的runC容器逃逸漏洞,用户如何面对?
  3. fastadmin 批量上传不成功_shopee批量上传产品步骤
  4. jvm调试工具_调试JVM
  5. Linux 系统应用编程——网络编程(socket编程)
  6. 使用valgrind检测内存问题
  7. 95-40-105-java.util.concurrent-线程-Executor
  8. viewpager fragment FragmentStatePagerAdapter数据删除后更新界面
  9. Echarts数据可视化series-graph关系图,开发全解+完美注释
  10. c语言静态函数调用静态变量_C语言中的静态变量和函数
  11. Git详解(2)——Git基础
  12. jquery 下载 安装 浏览器支持
  13. 百度地图python_python百度地图API爬取街景
  14. 软考高项(信息系统项目管理师)论文范文分享
  15. 数学作图工具_分别用于教学、排版、科研的数学作图软件
  16. 手动引入jar包,解决Dependency ‘XXX‘ not found的两种方式
  17. 创始人负债10亿,开课吧即将“下课”?
  18. LightGBM详解--原理+技巧+参数
  19. 一个事物两个方面的对比举例_作比较的句子大全简短-对比的句子什么比什么重要-什么和什么做比较的句子...
  20. 谈谈papi酱的价值

热门文章

  1. (零)我为什么要写Linux学习笔记?
  2. pc端WINCE的安装包
  3. 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...
  4. python3.6安装教程-python3.6环境安装+pip环境配置教程图文详解
  5. python爬虫正则表达式实例-python爬虫 正则表达式解析
  6. 关于python中requests模块导入问题-Python中requests模块的核心使用(1)
  7. python在excel中的应用-Python利用pandas处理Excel数据的应用详解
  8. python 开发版-Micropython开发板固件烧写教程
  9. python自学路线-自学python编程的方法路线
  10. python写出的程序如何给别人使用-如何用PYTHON代码写出音乐