SDAU练习四 1003
来源:互联网 发布:数据库类型有哪些 编辑:程序博客网 时间:2024/05/17 08:57
题目大意:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不 一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
解题思路:题目大意就是求可以最少多少条线把子连通图连起来使其成为一个大的连通图。这道题用并查集的方法将每个子连通图表示成每个独立的集合,然后求有多少个集合即可。难点就在于如何表示成集合。首先创建数组,初始化时候看城镇的个数,数组的标号等于数组的值,表示每个城镇对应的是不同的集合,也就是一开始每个城镇都是独立的个体,然后开始添加道路。输入2个城镇,首先找到每个城镇的集合号,如果这两个城镇的集合号相同,那么表示着2个城镇是互通的,不需要再动了;如果不相同,表示他们有着共同的双亲,将一个城镇的集合号数作为城镇赋值给另个城镇的集合号数的集合号,简而言之就是并入同一个集合,他们是祖先也就成为了集合号数,也就是树的根节点。对于输出,判断有都是个独立的集合即可。
做题感想:感觉是一个新的东西,一开始有点难接受,不是特别明白,而且只讲了一个例题,觉得有点疑惑,这个方法是不是只是针对一特定的题目,适用性好像不是很强,最后代码有借鉴成分。
AC代码:
0 0
- SDAU练习四 1003
- SDAU练习四 1003
- 2016sdau课程练习专题四 1003
- SDAU练习四
- SDAU练习四 1005
- SDAU练习四1006
- SDAU练习四总结
- 2016SDAU课程练习四1003 Problem C
- SDAU课程练习1003
- SDAU练习三1003
- 2016sdau课程练习专题四 1001
- 2016sdau课程练习专题四 1002
- 2016sdau课程练习专题四 1006
- SDAU课程练习 2 1003
- SDAU 课程练习3 1003
- SDAU 练习四1001 acm村庄建设最小长度问题
- SDAU 练习四1002 acm 艾迪画墨水问题
- 2016SDAU课程练习四1001 Problem A
- debian LSB开机启动项脚本学习笔记
- 【SQL】 sql中的日期比较
- HTTP连接管理
- 正弦波放大电路与移相电路设计
- Tensorflow: Linear Regression
- SDAU练习四 1003
- 嵌入式lab1
- pl/sql 运算符和表达式
- android事件分发(三)重要的函数requestDisallowInterceptTouchEvent
- java 实现单片机与PC串口通讯
- Cassandra 的 cql入门使用
- //毫米到英寸,单位换算
- 【Memcashed0】学习小结
- SDAU练习四 1003