首页 > 其他分享 >HDU1232畅通工程

HDU1232畅通工程

时间:2022-10-18 17:05:17浏览次数:70  
标签:pre 工程 HDU1232 sum 城镇 int 道路 畅通 find



畅通工程

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 62539    Accepted Submission(s): 33472


Problem Description


某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?


 


Input


测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。
注意:两个城市之间可以有多条道路相通,也就是说
3 3
1 2
1 2
2 1
这种输入也是合法的
当N为0时,输入结束,该用例不被处理。


 


Output


对每个测试用例,在1行里输出最少还需要建设的道路数目。


 


Sample Input





4 2 1 3 4 3 3 3 1 2 1 3 2 3 5 2 1 2 3 5 999 0 0



 


Sample Output







Hint

Hint







 


Source


​浙大计算机研究生复试上机考试-2005年 ​


 


Recommend


JGShining   |   We have carefully selected several similar problems for you:   ​​1233​​  ​​1272​​  ​​1875​​  ​​1879​​  ​​1213​​ 


/*
初学并查集,如有错误请您指出

并查集的简单运用

*/

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1005;
int n,m;
int pre[MAXN];
void init(int n) //初始化,让每一个元素的根都是自己
{
for(int i=1;i<=n;i++) pre[i]=i;
}
int find(int x) //查找每一个元素的根节点
{
return x==pre[x]?x:pre[x]=find(pre[x]);
}
void join(int x,int y)//合并两个元素
{
x=find(x); //将x,y重新赋值为其根节点
y=find(y);
if(x!=y) //判断二者根是否相同,是的话就在一个集合里边
pre[x]=y; //根不同就将二者根连接在一起
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
scanf("%d",&m);
init(n);
int x,y;
for(int i=0;i<m;i++)
{
scanf("%d %d",&x,&y);
join(x,y); //合并x,y
}
int sum=0;
for(int i=1;i<=n;i++) //查找一共有多少个集合
if(pre[i]==i) sum++;
printf("%d\n",sum-1); //输出结果是集合数减一

}
return 0;
}







标签:pre,工程,HDU1232,sum,城镇,int,道路,畅通,find
From: https://blog.51cto.com/u_15834888/5767605

相关文章

  • HDU1863畅通工程
    畅通工程TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):35107    AcceptedSubmission(s):15572......
  • 云原生架构与云IDC实操业务 腾讯架构师工程师TCP认证 含DevOps
    云原生架构与云IDC实操业务腾讯架构师工程师TCP认证含DevOps云原生已经是云计算行业的事实标准,改变了软件开发、部署和运维的工作、思维方式,也让运维人员的职业方向发......
  • HDU 1863 畅通工程(Kruskal)
    畅通工程TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):23823    AcceptedSubmission(s):10381Pr......
  • 工程监测振弦无线采集仪外接数字传感器接入逻辑与数据发送
    1.数字传感器的数据接入逻辑VS-Box无线采集仪设备支持在RS485接口外接数字传感器,可以进行单类型、多类型数字传感器接入。单类型数字传感器:使用寄存器DS_SENSOR(282)来......
  • UModel2016和EA12序列图正向和逆向工程
    UModel2016和EA12序列图正向和逆向工程一、UModel2016正向和逆向工程【步骤0】在http://www.altova.com/download-trial.html下载AltovaMissionKit2016,安装。初次运行时会......
  • 《SREWorks 云原生数智运维工程实践》电子书重磅来袭!(免费下载)
    云原生是在云计算场景下的再升级,其核心是创新,是一次比物理机上云更彻底的创新。云原生让工作负载摆脱束缚,能够自由地在各种平台上运行。诚然,这种创新带来了更多的可能性,但也......
  • 【软件工程】期末重点
    1)增量模型的特点?分批次把产品提交给用户2)快速原型和瀑布模型的特点?一次把所有满足所有需求的产品提交给用户3)螺旋模型的特点?每个阶段都增加了风险分析过程的快速原型模型4)软......
  • 对软件工程的理解
    软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计件有电子邮件、嵌入式......
  • 数据库工程师简介
    数据库工程师简介数据库开发工程师:1.负责公司业务数据库系统的模型设计,表结构设计2.负责数据处理中的语句实现,存储过程逻辑实现3.负责指导开发人员对语句的性能优化和......
  • 【软件工程】订货系统的UML类图
    【软件工程】绘制状态转换图​​1.绘制内容​​​​2.数据流图​​1.绘制内容研究教材第2章给出的订货系统的例子,考察在这个系统中有哪些类,建立订货系统的对象模型。用UM......