SDAU练习四 1003
来源:互联网 发布:php购物网站源码mysql 编辑:程序博客网 时间:2024/05/18 03:19
题目大意:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不 一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
解题思路:题目大意就是求可以最少多少条线把子连通图连起来使其成为一个大的连通图。这道题用并查集的方法将每个子连通图表示成每个独立的集合,然后求有多少个集合即可。难点就在于如何表示成集合。首先创建数组,初始化时候看城镇的个数,数组的标号等于数组的值,表示每个城镇对应的是不同的集合,也就是一开始每个城镇都是独立的个体,然后开始添加道路。输入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
- android事件分发(三)重要的函数requestDisallowInterceptTouchEvent
- java 实现单片机与PC串口通讯
- Cassandra 的 cql入门使用
- //毫米到英寸,单位换算
- 【Memcashed0】学习小结
- SDAU练习四 1003
- IDEA下创建Maven,Servlet,JSP,MYSQL项目
- android google GMS服务包安装
- TCP/IP学习(1)
- 关于SAP系统 数据库底层表设计约束情况
- SHELL实现CentOS6,Ubuntu16下自动下载,编译安装LAMP
- leetcode 求字符串数组的最大公共前缀
- Java UDP编程实例
- 写在开篇的话