并查集入门题畅通工程

避坑指南:C#用S7NetPlus读写西门子PLC字符串(String/WString)的完整方案 本文详细解析了C#通过S7NetPlus读写西门子PLC字符串(String/WString)的完整方案,包括内存布局、编码差异和字节序处理等关键技术细节。提供了实战优化的代码示例和常见问题排查指南,帮助开发者避免乱码、截断等常见陷阱,提升工业自动化项目的开发效率。 阅读详情

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




Huge input, scanf is recommended.
Hint
Hint 

 题目分析:

                  我相信这个问题应该是很多人刚接触并查集的第一个问题,也是一个很经典的问题,题目的意思显然就是求出连通分支数n,然后只需要添加n-1个桥就可以让这些连通分支链接起来。并查集最大的用途便是让一个看起来混乱不堪的关系,在很短的时间内变为几个不相干的连通分支,所以这个题运用并查集来做是一个最好的方案。

代码如下

#include<stdio.h>
#include<string.h>
int pre[1001];
int r[1001];
int find(int x)
{
	int r=x;
	while(pre[r]!=r)
	{
		r=pre[r];
	}
	int t=x,j;
	while(pre[t]!=r)
	{
		j=pre[t];
		pre[t]=r;
		t=j;
	}
	return r;
	
}
int mix(int a,int b)
{
	int x=find(a),y=find(b);
	if(x!=y)
	{
		pre[y]=x;
	}
}
int main()
{
	
	int n,m,i,t,q,sum;
	while(scanf("%d%d",&n,&m)&&n!=0)
	{
		sum=0;
		for(i=0;i<=1000;i++)
	{
		pre[i]=i;
	}
		for(i=1;i<=m;i++)
		{
			scanf("%d%d",&t,&q);
			mix(t,q);
		}
		
		memset(r,0,sizeof(r)); 
		for(i=1;i<=n;i++)
		{
			r[find(i)]=1;
		}
		for(i=1;i<=n;i++)
		{
			if(r[i]==1)
			{
				sum=sum+1;
			}
		}
		printf("%d\n",sum-1);
	}
	
	return 0;
 } 

这一段代码还是有很多东西需要说一下的,作为一个并查集的入门题里面的

find函数是寻求这个节点的祖宗节点,对于一个节点,若他的祖宗节点是他自己本身,那么他便是这个节点的祖宗,那么拥有一个祖宗的节点,便是一个连通分支内的,里面有一个合并路径的算法,就是不断的找这个节点的上级节点,直接将他们的上级变为祖宗,这样的话对于之后的合并祖宗节点,会节省大量的时间,不需要在逐级找他的祖宗,使代码更加快速。


vue2 - 详细实现播放AMR格式音频并实现自定义播放器样式,支持amr音频文件在线地址URL播放、调用服务端API接口获取二进制文件流amr形式、用户本地上传amr文件并实现立即播放(详细代码) vue2,amr,amr文件播放,vue播放amr音频文件以及在线url跨域问题解决,vue使用audio标签播放amr音频,amr跨域解决,amr网页解码播放,文件上传后怎么播放,vue2播放.amr语音文件,api接口形式调用获取的amr如何播放,vue中如何使用audio元素播放AMR格式的文件,进度条,vue前端如何播放AMR格式的音频文件,vue播放语音文件AMR格式,播放amr格式音频AMR录音机,h5原生audio播放amr格式的音频,VUE2使用benz-amr-recorder 实现解码、 阅读详情

相关推荐

AI工程化之生成式UI & A2UI(二)

本文介绍了生成式UI框架A2UI的架构设计与核心实现。项目采用AI协作开发模式,通过ATDD(AI驱动的测试驱动开发)确保代码质量。前端SDK基于zustand实现框架无关的状态管理,包含协议解析器、存储管理、渲染器等核心模块。重点展示了基础store构建、A2UI协议解析器的实现过程,包括mock数据准备、测试用例生成和可视化调试。项目采用monorepo管理,利用vite实现高效开发构建。整个系统设计遵循模块化原则,通过清晰的接口定义实现各组件解耦,为后续功能扩展打下基础。

qq_34306228的博客 407

Problem C

Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?   Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N (

tansanity的博客 770

使用LogisticRegression和LightGBM模型对信贷违约进行预测----基于kaggle比赛数据

3.分离数值型变量与类别型变量,发现有些数值型变量因为输入不规范,比如数值中含有字符(28_,_10000_等)被划分为类别型变量 ,比如 'Age','Annual_Income','Num_of_Loan', 'Num_of_Delayed_Payment', 'Changed_Credit_Limit','Credit_Mix','Monthly_Balance', 'Outstanding_Debt' ,'Amount_invested_monthly'等。三、分箱,woe编码,计算IV值。

I_am_a_big_tiger的博客 1682

hdu 1232畅通工程(DFS)

畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?    Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分

zhangzhilai8的专栏 644

实战指南:如何用Elasticsearch+Milvus搭建十亿级多模态搜索系统(含性能调优)

本文详细介绍了如何利用Elasticsearch和Milvus构建十亿级多模态搜索系统,包括架构设计、性能调优和实战部署。通过混合架构实现高效文本检索与向量相似度计算,显著提升查询性能与扩展能力,适用于大规模多模态数据处理场景。

x8y9z0的博客 1171

Anti-UAV 反无人机大赛数据集处理脚本(1)标签转换为YOLO格式

【代码】Anti-UAV 反无人机大赛数据集处理脚本(1)标签转换为YOLO格式。

qq_45937329的博客 534

专题四 第三个题

1.题目编号:1003 2.简单题意:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 3.解题思路形成过程:又是一个最小生成树问题,老师讲过这个问题,当时讲的是并查集引出了这个问题。将全部城镇分为N个,将N个城镇全

慧吖的博客 518

Android开发中StateFlow与LiveData的5个关键区别及实战避坑指南

本文深度解析了Android开发中StateFlow与LiveData的5个核心区别,包括设计哲学、生命周期管理、值更新策略、线程模型及协程生态整合。通过实战代码对比,为开发者在现代MVVM架构下的状态管理选型提供清晰的决策指南和避坑建议,帮助构建更健壮、可测试的应用。

weixin_29012677的博客 403

算法笔记练习 9.6 并查集 问题 B: 畅通工程

算法笔记练习 题解合集 本题链接 题目 题目描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 输入 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数...

Gorgeoustray 394

黑猫带你学eMMC协议第22篇:emmc可靠写详解(Write Reliability)

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有部分错误请留言。 本文部分内容可能源自网络,侵删。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 1、什么是可靠性写属性(Write Reliability)? 2、可靠写和普通的写有什么区别? 3、设置可靠写的流程及流程框图。 4、可靠写需要遵循哪些规则? 1.3 参考链接 本文主要参考链接:http://www.up48.com/cn/support/8_37.html 2 什么

黑猫奥利奥的博客 3123

14、多级快速多极子算法(MLFMA)详解

多级快速多极子算法(MLFMA)是一种高效加速矩阵向量乘法(MVM)的数值方法,广泛应用于电磁场积分方程求解中。该算法通过构建多级树结构,将MVM分解为近场直接计算和远场分组计算两部分,利用递归聚类、聚合-平移-分解三阶段处理远场相互作用,并结合采样、模式计算与优化策略,将计算复杂度从O(N^2)降低至O(N log N)。博文详细阐述了MLFMA的核心步骤、数学推导、计算复杂度及实际应用中的优化技术,如伽辽金方案改进、对称性利用和反插值方法,为大规模电磁问题的高效求解提供了系统性指导。

t8u9v0w1x的博客 242

并查集-畅通工程

题目描述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 解题思路:此处涉及到数据结构中的并查集。解题C语言代码: 1#include<stdio.h> 2 3 int fa...

allan8638的博客 183

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8281

畅通工程:并查集入门裸题

畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通 (但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( &...

dizhoukong2188的博客 179

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hdu 1232 畅通工程 并查集入门题 模板

畅通工程 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1232 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input 测试输入...

一叶之修的博客 276

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

hdu1223 还是畅通工程 kruskal裸题 并查集 入门

还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 64584Accepted Submission(s): 29281 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两...

一叶之修的博客 275

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

并查集入门经典题:畅通工程

Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?  Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( &lt; 1000 )和道路数目M;...

Lynn_coder的博客 816

并查集入门题(畅通工程)

某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( &lt; 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正...

black_hole6的博客 393

HDU 1232——畅通工程 并查集入门题(附带并查集板子)

题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=1232 题意 :给定你n个村庄以及m条路,每条路连接两个村庄,求还需要最少多少条路使得任意两个村庄之间互相可以到达(直接间接都可以)。 思路 : 这是一道并查集经典的入门题,可以看这些村庄有多少个连通分量,然后连通分量的个数- 1即为答案 如图所示,这是第一个样例,节点1 3 4即为一个连通分量,...

彤云望月 413

hdu-1232-畅通工程(并查集入门题)

畅通工程(点击题目) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 56734    Accepted Submission(s): 30300 Problem Description 某省调查城镇交通状况,

暗淡的时光 713

hdoj 1232 畅通工程 -并查集入门题

题目 code #include&lt;stdio.h&gt; #include&lt;algorithm&gt; #include&lt;string.h&gt; #include &lt;math.h&gt; using namespace std; int pre[1000],total; /*int find_digui(int x){// 递归调用 但是容易造成栈溢出 if(p...

Decmxj1229的博客 263

畅通工程(并查集入门 C++)

畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( &lt; 1000 )和道路数目M;随后的M行对应M条道...

qq_42995099的博客 936

(并查集入门)畅通工程

畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24842    Accepted Submission(s): 12922 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每...

Wanf 178

ACM-并查集之畅通工程——hdu1232

ACM 并查集 畅通工程 hdu1232 并查集理解

继续激情,继续奋斗。 7733
上一篇: C语言中qsort函数用法详解
下一篇: 堆应用 Fence Repair
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值