生成树
图论生成树
_C9
咸鱼也要有咸鱼的样子
展开
-
【洛谷】P1195 口袋的天空(k个生成树+kruskal)
解题思路:一开始没看懂题目,把题目描述转化一下其实题目让我们求的是k个生成树,那么这该怎么做呢,我们思考一下kruskal算法的原理,一开始图中的每个点都是一棵树,我们查询两个点是否在同一个树中,如果不在,则将两个数合并成一个树,这样问题是不是就迎刃而解了,我们只需要用一个变量cur存储当前图中有几个树,每次合并树的时候cur减1,当cur的值等于k的时候,合并树所需要的花费也就是最后的答案下面附上ac代码#include <iostream>#include <c...原创 2021-05-28 17:25:57 · 253 阅读 · 0 评论 -
【洛谷】P1194 买礼物(kruskal)
解题思路:最小生成树裸题,只需要将每个边放进去,最后生成树的答案加上第一个节点物品的价格就可以了。下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <cstr...原创 2021-05-28 16:48:27 · 313 阅读 · 0 评论 -
【洛谷】P2121 拆地毯(kruskal+最大生成树)
解题思路:很明显最后要求结果无环,那么最后结果就是一个生成树,又要求美丽度最大,那么就是最大生成树,用kruskal的思想,将边从大到小排序然后当节点数等于k的时候跳出循环,最后数据生成树的权值就可以了下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <...原创 2021-05-28 16:01:42 · 161 阅读 · 0 评论 -
【洛谷】P1396 营救(kruskal)
解题思路:要实现思维转化,这道题目并不是最短路问题,因为最短路不一定是拥有边权最小的路,因为s到t一定可达,所以需要用到kruskal算法的思想,先将边从小到大排序进行预处理,在加边的过程中如果用并查集发现s和t联通的话,取出这个联通的路径中的边权最大值就是答案下面附上ac代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#incl...原创 2021-05-28 15:45:16 · 351 阅读 · 0 评论 -
【洛谷】P3366 【模板】最小生成树(Prim堆优化+Kruskal)
Prim堆优化模板#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <cstring>#include <queue>#include <set&g...原创 2021-05-26 17:44:51 · 162 阅读 · 0 评论 -
超好理解的图论算法——最小生成树(Prim算法)
通俗的讲生成树就是将图中所有顶点连接起来,并且不产生回路。而其中将各个顶点连接起来代价最小的方法也就是最小生成树。通常来说,我们解决最小生成树的问题用到两种算法Prim算法和Kruskal算法,这两种方法其实都用到了贪心的思想,...原创 2021-01-17 11:42:54 · 259 阅读 · 0 评论 -
最小生成树题解
城市公交网建设问题时间限制: 1000 ms 内存限制: 65536 KB提交数: 5279 通过数: 1880【题目描述】有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权为在这两个城市之间修建高速公路的造价,研究后发现,这个地图有一个特点,即任一对城市都是连通的。现在的问题是,要修建若干高速公路把所有城市联系起来,问如何设计可使得工程的总造价最少?【输入】n(城市数,1<≤n≤100)e(边数)以下e行,每行3...原创 2020-08-09 16:28:54 · 784 阅读 · 0 评论 -
最小生成树kruskal小节
Kruskal算法此算法可以称为“加边法”,初始最小生成树边数为0,每迭代一次就选择一条满足条件的最小代价边,加入到最小生成树的边集合里。 1. 把图中的所有边按代价从小到大排序; 2. 把图中的n个顶点看成独立的n棵树组成的森林; 3. 按权值从小到大选择边,所选的边连接的两个顶点ui,viui,vi,应属于两颗不同的树,则成为最小生成树的一条边,并将这两颗树合并作为一颗树。 4. 重复(3),直到所有顶点都在一颗树内或者有n-1条边为止。...原创 2020-08-07 23:11:01 · 88 阅读 · 0 评论 -
图论最小生成树周结
所谓最小生成树就是一个有N个点的图,边一定是大于N-1条的,图的最小生成树,就是在这些边中选择N-1条出来,连接所有的N个点,这N-1条边的边权之和就是所有方案的最小的用两个题分解一下求最小生成树的两种算法Prim算法和Kruskal算法 最优布线问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 3050 通过数: ...原创 2020-05-02 19:24:27 · 159 阅读 · 0 评论