最小生成树
文章平均质量分 67
1
zzqwtc
blog dot zzqwtc dot com
展开
-
Acwing 346.走廊泼水节(最小生成树)
Acwing 346.走廊泼水节题意给定一棵 N 个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意: 树中的所有边权均为整数,且新加的所有边权也必须为整数。思路考虑在求最小生成树的过程中加边,因为要加成完全图,所以每次合并两个连通块时,左边连通块的点到右边连通块的点都应该加上一条边,那么加边的权值应该是多少呢?不妨假设以下三种情况:设 w 为最小生成树当前的边新边 < w新边 = w新边 > w原创 2021-10-21 21:37:31 · 3391 阅读 · 0 评论 -
信息学竞赛一本通-图论-新的开始(建立虚拟节点+最小生成树)
新的开始题意发展采矿业当然首先得有矿井,小FF花了上次探险获得的千分之一的财富请人在岛上挖了n口矿井,但他似乎忘记考虑的矿井供电问题……为了保证电力的供应,小FF想到了两种办法: 在这一口矿井上建立一个发电站,费用为v(发电站的输出功率可以供给任意多个矿井)。 将这口矿井与另外的已经有电力供应的矿井之间建立电网,费用为p。小FF希望身为「NewBe_One」计划首席工程师的你帮他想出一个保证所有矿井电力供应的最小花费。思路如果不考虑建造发电站的费用,那么这题就是最小生成树原创 2021-10-20 19:50:48 · 3412 阅读 · 0 评论 -
北极通讯网络(最小生成树)
北极通讯网络题意北极的某区域共有n座村庄,每座村庄的坐标用一对整数 (x,y)(x,y)(x,y) 表示。为了加强联系,决定在村庄之间建立通讯网络。通讯工具可以是无线电收发机,也可以是卫星设备。所有的村庄都可以拥有一部无线电收发机,且所有的无线电收发机型号相同。但卫星设备数量有限,只能给一部分村庄配备卫星设备。不同型号的无线电收发机有一个不同的参数 ddd,两座村庄之间的距离如果不超过 ddd 就可以用该型号的无线电收发机直接通讯,ddd 值越大的型号价格越贵。拥有卫星设备的两座村庄无论相距多远都可以原创 2021-10-20 20:56:46 · 3502 阅读 · 0 评论 -
CodeForces - 1468J - Road Reform (最小生成树)
Road Reform题意给你一个 nnn 个顶点 mmm 条边的无向图 (没有重边) 要求删掉 m−(n−1)m - (n - 1)m−(n−1) 条边使得图仍联通 并且权值最大的边与 kkk 的差值最小思路先把所有小于等于 kkk 的边加入新图 然后判断是否连通如果已经联通 那么有两种选择 1.将已经加入的最大边权增大到 kkk 2.将大于 kkk 的第一条边加入 并且减少到 kkk如果没有联通 那么按照边权递增的顺序加入边 直到联通为止代码#include<bits/st原创 2021-02-13 16:17:19 · 3319 阅读 · 3 评论 -
最小生成树之Prim算法+堆优化
#include<bits/stdc++.h>#define INF 0x3f3f3f3f3f3f3f3f#define mod 1000000007#define IOS ios::sync_with_stdio(false)#define endl '\n'using namespace std;typedef long long ll;const int maxn...原创 2020-03-13 21:27:47 · 2161 阅读 · 1 评论 -
最小生成树之Kruskal算法
具体做法: 首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止。把所有边按权值从小到大排序遍历每条边 如果这条边的两个顶点一个在树内一个在树外 则将顶点入树保证了每条边的权值都是最小的最终得到的树即为最小生成树并查集的作用是判断两个顶点是否在一个集合(在一个树内)并且合并两个顶点到一棵树假设排序后第一条边为从顶点...原创 2020-03-13 17:06:20 · 1690 阅读 · 0 评论 -
最小生成树之Prim算法
#include<bits/stdc++.h>#define INF 0x3f3f3f3f#define mod 1000000007#define IOS ios::sync_with_stdio(false)#define endl '\n'using namespace std;typedef long long ll;const int maxn = 1e3 + ...原创 2020-03-13 14:56:10 · 1653 阅读 · 0 评论