最小生成树
文章平均质量分 65
爱抠脚的coder
这个作者很懒,什么都没留下…
展开
-
还是畅通工程(Kruskal)
题目网址:还是畅通工程原理:(并查集和最小生成树思想的结合)(1)初始时所有的节点都属于孤立的集合;(2)按照边权值递增的顺序遍历所有的边,若遍历到的边两个顶点仍分属于不同的集合,则确定该边为最小生成树上的一条边,并将这两个顶点所在的集合合并;(3)遍历完所有的边,原图上所有的结点都属于同一个集合则被选取的边和原图中所有的结点构成了最小生成树;否则原图不连通,最小生成树不存在。原创 2017-09-24 10:29:14 · 511 阅读 · 0 评论 -
畅通工程
题目网址:畅通工程题目比较简单,与之前的还是畅通工程相比就是多了判断是否可以构成最小代价生成树,即使用一个cnt,判断是否parent[i]==i的数目大于1,那么就是存在节点不在最小生成树上。直接给出源码:/*题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估, 得到的统计表中列出了有可原创 2017-09-24 16:32:28 · 309 阅读 · 0 评论 -
Freckles
题目网址:Freckles题目大意:给出n个点的坐标,求出将这些点相连,这种连接方式使得所有线段长度和最小,求这个长度和为多少?其实这道题,比最小生成树的求解多了一个步骤,因为给的是一系列的点,并不像之前的题目给的是一系列的边,我只需要将边权值排序然后kruskal就行,这道题我需要利用一个结构体存储那些输入的点,然后在求解。#include#include#include#in原创 2017-09-24 15:23:27 · 264 阅读 · 0 评论 -
jungle roads
题目网址:jungle roads题目大意:指的是给你一个图,让你给出将所有节点相连接起来的最小的花销,花销与边权值是相对应的,最终输出最小的结果。这个输入是比其他稍微复杂点,给n表示村庄的数目,接下来n-1行,第一个字符是起点,第二个数字是表示与这个起点相邻的节点的个数,然后是相邻节点的字符和距离;就是采用并查集来做,最小生成树的kruskal算法,直接给出源代码了。。#includ原创 2017-09-24 15:55:37 · 396 阅读 · 0 评论 -
继续畅通工程
题目网址:继续畅通工程题目分析:这个比之前的还是畅通工程相比多了一个就是有的路已经修好了,无需在花销,所以我们比之前的做法只是多判断一点,如果已经修过了,那么我们就把这条路的花销修改为0,其他不变。#include#includeusing namespace std;int parent[102];int findroot(int x){ if (parent[x] != x)原创 2017-09-24 16:39:20 · 463 阅读 · 0 评论