
最小生成树
ssl_yty
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【gmoj】【最小生成树】间谍派遣
出任务费用最小的肯定出(设A的出任务费用较小,A→B,让B出,B→A,让A出,传递等价,所以A出更优)因为所有的信息都要获得,说明构成一个连通图,即跑最小生成树(我用的prim)原创 2022-08-04 20:19:51 · 117 阅读 · 0 评论 -
【ybtoj 高效进阶 3.2】【最小生成树】 构造完全图
【ybtoj 高效进阶 3.2】【最小生成树】 构造完全图 题目 解题思路 最小生成树就是在一个完全图里找到能使所有点相连且边权最小 那么最小生成树中的一条边可以看作是连接两个大小为V1,V2的连通块中最短的边 而完全图是所有节点都两两相连 那么还需要连V1*V2-1条边 为了边权最小且都大于最小生成树中的那一边d 我们将ta视为d+1 按边权大小排序 查找每条边连接的点是否在同一集合 不是就补边累计答案 且合并两个集合 感觉像并查集了 (⊙_⊙)? 代码 #include<algorithm原创 2021-05-05 09:22:33 · 161 阅读 · 0 评论 -
【ybtoj 高效进阶 3.2】【最小生成树】 公路建设
【ybtoj 高效进阶 3.2】【最小生成树】 公路建设 题目 解题思路 这道题恶心在时间复杂度 Kruskal会比prim的时间复杂度低 Kruskal是一种贪心 我们只需要维护边权从小到大 然后跑一遍并查集 求出当前的最小花费 如果不能覆盖所有城市,输出0 代码 #include<iostream> #include<cstdio> #include<cmath> using namespace std; struct lzf{ int x,y,c; }a[原创 2021-05-04 08:35:50 · 154 阅读 · 0 评论 -
【ybtoj 高效进阶 3.2】【最小生成树】 新的开始
【ybtoj 高效进阶 3.2】【最小生成树】 新的开始 题目 解题思路 将建设发电站的费用看作是连向超级点的边权 从超级点开始跑一边prim即可 代码 #include <iostream> #include <cstring> #include <cstdio> using namespace std; int n, x, tot , mi = 1, f[320], p[320], a[320][320]; int main() { scanf("%d原创 2021-05-04 08:29:24 · 132 阅读 · 0 评论 -
【ybtoj 高效进阶 3.2】【最小生成树】 繁忙都市
【ybtoj 高效进阶 3.2】【最小生成树】 繁忙都市 题目 解题思路 prim模板题 解释在这里 代码 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,x,y,ans,maxn,f[320],p[320],a[320][320]; int main() { scanf("%d%d",&n,&m); for (int i=1原创 2021-05-03 22:12:54 · 140 阅读 · 0 评论 -
剑鱼行动 题解
剑鱼行动 题目 给出N个点的坐标,对它们建立一个最小生成树,代价就是连接它们的路径的长度,现要求总长度最小。N的值在100以内,坐标值在[-10000,10000].结果保留二位小数 输入 第一行 nnn 点的个数 接下来 nnn 行,nnn 个点的坐标 输出 最小总长度 样例 inpu 5 0 0 0 1 1 1 1 0 0.5 0.5 output 2.83 解题思路 板子 + 特殊求两点之间...原创 2019-12-21 11:53:12 · 285 阅读 · 0 评论 -
Agri-Net 最短网络 (最小生成树) 题解
Agri-Net 最短网络 (最小生成树) 题目 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过...原创 2019-12-21 11:20:32 · 1516 阅读 · 0 评论 -
最优布线问题 题解
最优布线问题 题目 学校有 nnn 台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们之间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机( 作为中转 )来实现与另一台计算机的连接。 现在由...原创 2019-12-21 10:11:40 · 1786 阅读 · 4 评论