随笔分类 -  最小生成树

摘要:题目链接:https://www.luogu.org/problemnew/show/P1783 先把题目改造一下:题目所求是要一条能从0列到n列的路径,使其路径上的最大边长一半最小。 为什么是一半呢? 考虑半径这个东西,假如两个点之间距离为d,半径分别为r1,r2。需满足r1 + r2 = d 若 阅读全文
posted @ 2019-06-10 19:07 Misaka_Azusa 阅读(201) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P4180 这个题卡树剖。记得开O2。 这个题inf要到1e18。 定理:次小生成树和最小生成树差距只有在一条边上 非严格次小生成树:枚举每一条不在最小生成树上的边,加入到最小生成树中构成一个环。删去这个环上的最大 阅读全文
posted @ 2018-11-06 10:15 Misaka_Azusa 阅读(231) 评论(0) 推荐(1)
摘要:include include include include using namespace std; const int maxn = 505000; int n, m, dis[maxn], vis[maxn], ans; struct edge{ int from, to, next, le 阅读全文
posted @ 2018-09-07 21:08 Misaka_Azusa 阅读(116) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P3623 说是对克鲁斯卡尔的透彻性理解 正解: 先考虑加入水泥路,然后再考虑加入剩下必须要加入的最少鹅卵石路。 之后对原图再跑最小生成树 先跑鹅卵石路到k条。 再从所有水泥路中直到成为最小生成树。 include 阅读全文
posted @ 2018-09-07 20:13 Misaka_Azusa 阅读(135) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1195 嗯~我是被题目背景吸引到才做的,想吃棉花糖啦! 话说回来,这道题其实很容易就能想明白,k棵最小生成树。 我们用kruskal的思想,每次连接最小代价的边。假设一开始有n棵树,那么我们每次连接两朵云彩就会 阅读全文
posted @ 2018-03-29 19:33 Misaka_Azusa 阅读(219) 评论(0) 推荐(0)
摘要:这里是kruskal做法 当然prim也可以,至于prim和kruskal的比较: Prim在稠密图中比Kruskal优,Kruskal在稀疏图中比Prim优。 阅读全文
posted @ 2018-03-04 11:29 Misaka_Azusa 阅读(179) 评论(0) 推荐(0)

Live2D