HDU1232 畅通工程

HDU 1232 畅通工程 并查集入门经典 OJ题解 HDU1232 畅通工程一、背景简介二、题目描述Problem DescriptionInputOutputSample InputSample Output三、题解思路四、AC代码完整代码其他参考 一、背景简介 此题为并查集的经典例题,入门水准。如果想学习这个数据结构,一定要好好学习这个基础,模版可以背下来。题目来源为HDU 1232,具体链接为:http://acm.hdu.edu.cn/showproblem.php?pid=1232。 二、题目描述 Problem Description 某省调查城 阅读详情
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
1 0 2 998
Hint
Hint
Huge input, scanf is recommended.
典型的纯粹的并查集,寻找图有多少连通分量,以下贴出代码熟悉下标准的并查集算法:
#include <stdio.h>
#include <string.h>
int father[1000];
bool brand[1000];

//带压缩路径 
int getFather(int x)
{
	int i, j, k;
	k = x;
	while(k!=father[k])
	{
		k = father[k];
	}
	
	i = x;
	while(i!=father[i])	
	{
		j = father[i];
		father[i] = k;
		i = j;
	}
	return k;
}

//合并(也可加入每个集合的节点数量,把量少的加入量多的集合中) 
void makeUnion(int x, int y)
{
	int fx = getFather(x);
	int fy = getFather(y);
	if(fx!=fy)
	{
		father[fx] = fy;
	}
}

int main()
{
	int M, N;
	int ans, i;
	int s, e;
	int f;
	while(scanf("%d%d", &M, &N) && M)
	{
		for(i=1; i<=M; ++i)
		{
			father[i] = i;
		}
		for(i=0; i<N; ++i)
		{
			scanf("%d%d", &s, &e);
			makeUnion(s,e);
		}
		memset(brand, false, sizeof(brand));
		ans = 0;
		for(i=1; i<=M; ++i)
		{
			f = getFather(i);
			if(false==brand[f])
			{
				ans++;
				brand[f] = true;
			}
		}
		printf("%d\n",ans-1);
	}
	
	return 0;
}


电脑主板开机12步流程全解析:从按下电源键到BIOS启动的完整过程 本文深入解析了电脑主板从按下电源键到BIOS启动的完整12步流程,详细阐述了待机电路、主供电上电、CPU供电建立、时钟信号分发及复位链等关键硬件协同工作原理。通过剖析电脑主板的电路结构与芯片协作时序,帮助读者构建系统性的硬件故障诊断思维,精准定位开机故障。 阅读详情

相关推荐

人工智能的未来:从弱 AI 到通用人工智能(AGI)

从最初的简单自动化程序,到如今的深度学习大模型(如 ChatGPT、DeepSeek、Grok),AI 逐步从弱人工智能(Weak AI)向更智能、更自主的方向发展。AI 的发展将影响就业市场,取代重复性、低技能的工作,同时创造新的高技能岗位。尽管深度学习带来了巨大的进步,但它仍然依赖大量标注数据进行训练,对新环境的泛化能力有限,这也是当前 AI 迈向 AGI 的关键障碍之一。本文将探讨 AI 从弱 AI 进化到 AGI 的可能性,分析目前 AI 技术的局限性,并展望未来 AI 在各个行业的影响。

qq_20245171的博客 1万+

HDU1232 畅通工程【并查集】

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

aaaaawyf的博客 254

合成孔径雷达Chirp Scaling(CS)算法MATLAB仿真实现

本人也是初学《合成孔径雷达成像算法与实现》,在GitHub上下载的关于CS算法的代码,仔细读了读,发现中间有一些不合理之处,动手改了一改,重新写了一个代码供初学者学习,有什么问题留言即可。 非常感谢源代码的作者,虽然中间有少许不正确的地方,但是对我理解cs算法的帮助非常大,非常感谢!!! 代码中提到的(4.31)这种均是在《合成孔径雷达成像算法与实现》中的公式 以下是MATLAB的仿真程序,直接复...

weixin_41700188的博客 7854

acm杭电HDU1232畅通工程 并查集 模板题

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

雪的期许 797

AT32串口打印全攻略:从零搭建到printf重定向(GCC版)

本文详细介绍了在GCC编译环境下为AT32系列MCU实现串口打印与printf重定向的完整方案。针对从Keil MDK迁移到GCC工具链时常见的串口无输出问题,文章从环境搭建、USART配置入手,重点剖析了GCC下printf重定向的核心原理——通过重写_write()函数,并提供了经过验证的代码实现、常见问题排查及性能优化建议。

weixin_29163797的博客 265

​​瑞芯微RK系列 vs 全志系列芯片:终极选型指南(2025版)​

​。

jinxi996611的博客 1万+

hdu 1232 畅通工程

hdu 1232 畅通工程题意题解源代码 传送门 题意 给定n个村子,和村子之间的道路,求连接所有的村子至少需要再修多少条道路 题解 互相连通的村子可以看成一个集合,一个点,现在需要求把这这些集合(点)连接起来 需要多少条线,由树的概念就可以看出来,边数等于点数-1,相当于求集合的数目, 可以用并查集解决 源代码 #include<cstdio> const int maxn = ...

antRain的博客 167

51单片机AHT20-21源代码

传感器输出经过 标定的数字信号,标准 I 2 C 格式。AHT20 配有一个全新设计的 ASIC专用芯片、一 个经过改进的MEMS半导体电容式湿度传感元件和一个标准的片上温度传感元件,其 性能已经大大提升甚至超出了前一代传感器的可靠性水平,新一代温湿度传感器, 经过改进使其在恶劣环境下的性能更稳定。但是现在网上的大多数原码都是针对stm32等的这种多位单片机,而我们都知道51单片机是8位单片机,无法对浮点数进行运算,对32位的整数计算有时候也不是很准确,所以我对网上stm32的例程进行了修改。...

wd0710的博客 4549

hdu1232畅通工程

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

小麦面包 480

【光子AI 2026 企业级 Agent 架构指南】别再把 Skill 当 Tool:Agent Skills × MCP 企业级落地全指南(最新定义澄清 + 场景大全 + 选型决策树+安全工程清单)

摘要: 2026年企业级AI架构迎来两大核心标准——Agent Skills与MCP(Model Context Protocol),分别解决流程标准化与系统集成难题。Agent Skills通过“文件夹化能力包”(SOP+脚本+模板)固化专家流程,确保输出一致性;MCP则以类USB-C的协议统一外部系统接入,降低集成成本。两者差异显著:Skills专注程序性知识(如财报生成),MCP侧重动态连接(如跨平台数据调用)。实际场景中,复杂需求(如智能客服)需组合使用——MCP为骨架提供连接能力,Skills为大

AI天才研究院 2479

LVGL core group焦点分组管理(lv_group.c)

lv_group_t是用于焦点管理的,将需要获取焦点的对像加入到同一个分组内,再将其通过挂到指定的事件驱动中,就可以控制焦点了。而被加入的对象又可以通过焦点状态事件和事件来控制对象的焦点逻辑了。创建好的分组通过接口挂事件驱动中,这样就可以指定一个自定义的焦点分组了。;) {if(!} }友情提示:无论是接口还是都是单例的,即被设置后前一个被设置的值就失效了;此方案可以保证焦点的唯一 性,但也一定要记住要在适合的位置设置回来,以防丢失焦点。

Bigan(安)的博客 3909

《HDU 1232 - 畅通工程》的题解

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

weixin_46163391的博客 516

第3讲:单端传输线的时域TDR仿真(基于实战的第一次仿真视角切换)

本文为CST仿真系列教程的第3讲,主要介绍传输线阻抗(TDR)的两种仿真方法:基于S参数的频域计算和基于高斯脉冲的时域计算。文章详细演示了在CST PCB Studio中修改电容参数、设置TDR仿真参数(包括截止时间和采样点数)的操作步骤,并通过对比实验展示TVS寄生电容对阻抗曲线的影响。最后将两种TDR方法的结果进行对比,验证了两种方法的一致性。本教程适合硬件工程师通过时域波形直观分析传输线阻抗特性,是信号完整性分析的重要技能。

一只豌豆象的博客 230

hdu1232-畅通工程

畅通工程 我都不知道该怎么形容我最近的状态了,刷水题狂卡,这个题目也是一样,输入n,居然忘了排除n=0 // File Name: hdu1232.cpp // Author: rudolf // Created Time: 2013年04月25日 星期四 19时42分58秒 #include #include #include #include #include #includ

bo-jwolf的专栏 1044

温度PID控制PLC程序

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2020寒假集训专题三 HDU - 1232 畅通工程

HDU - 1232 畅通工程题解 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 专题链接:https://vjudge.net/contest/351234#problem/H 思路 题意要求出保证每个城镇“通路”的前提下的最小待建路数,我们只要将原本就存在的路尽可能地纳入我们的最终企划中,再用城镇数-1再减去纳入规划中的原有路数即可。...

bllovepigpig的博客 153

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【并查集】HDU 1232 畅通工程

HDU 1232 畅通工程 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <string> #include <v...

L_X_ 134

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hdu 1232 畅通工程

hdu  1232  畅通工程                题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 并查集 题目分析:重点在这个水爆了的算法 code: #include #include int father[1010]; int _find(int a) { while(father[a]!=-1)a=father[a

slicer的技术交流栈 759

hdu 1232 畅通工程【并查集】【模板题】

hdu 1232 畅通工程  #include&lt;iostream&gt; #include&lt;string.h&gt; using namespace std; int pre[1005]; int find (int x) { int r=x; while(pre[r]!=r) r=pre[r]; int i=x; int j; while(i!=r) { ...

不甘 289

hdu 1232 畅通工程(并查集)

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

diansitao5461的博客 77

畅通工程(HDU 1232)经典并查集

#include <bits/stdc++.h> using namespace std; const int N = 1005; int table[N]; int findt(int x){ if(table[x]==-1){ return x; } table[x]=findt(table[x]); return table[x]; } void merge(int a, int b){ int ta=findt(a); int tb=findt(b); if(t

征服所有不服的博客 163

hdu1232详解 畅通工程

题目链接:hdu1232畅通工程这一题是并查集的题,关键就是找出根结点的数目,下面附上详细的代码和注释讲解:(注释中  祖先=根节点)#include&lt;bits/stdc++.h&gt; int m,n,pre[1010],rank[1010];//pre数组存关系(pre[a]==b表示a的父亲是b),rank数组存树上有多少节点(rank[i]==j表示根节点为i的树上有j个节点) v...

Ruhe_king的博客 1358

HDU-1232 畅通工程

HDU-1232 畅通工程 链接添加链接描述 分析: 1.运用了并查集的思想,将互相连通的城镇看成一个集合,建设a与b之间的一条道路就是把a所在的集合与b所在的集合进行合并。 2.使用find函数进行路径压缩,使得代码更加高效。 3.将所有集合都看成一个点,则易得使n个点(城镇集合)全部连通所需要最少的边(道路)为n-1条. 代码 #include<bits/stdc++.h> using namespace std; int fa[1010]; //fa[r]代表r的父节点 int find

qq_55788088的博客 184

HDU-1232.畅通工程(并查集)

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

紫藤&code的博客 182

HDU 1232 畅通工程 [并查集]

Description给N个城市,再给出M条关系,表示两者是否连通 问 再修几条路,使他们全部连通Algorithm并查集 并一下,看最后有几个集合,那个-1就是ansCodeimport java.util.Scanner;class UnionFind { int n; int[] par; int[] rank; UnionFind(int nn) { n = n

more time 535

【并查集】HDU 1232 畅通工程

题目链接-&gt;http://acm.hdu.edu.cn/showproblem.php?pid=1232 HDU 1232   畅通工程                                                                                  畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...

荷叶田田 428
上一篇: 2014WAP校园招聘笔试题
下一篇: Linux常见问题(CentOS)
知行且执行
博客等级 码龄14年 38粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值