图论复习——最小生成树MST
知识点
MST的构造
Boruvka算法常用于解决这类问题:给你n个点,每个点有点权,任意两个点之间有边权,边权为两个点权用过某种计算方式得出,求最小生成树。动图MST上的确定性和存在性问题
最小生成树的两个性质:
(1) 不同的最小生成树中,每种权值的边出现的个数是确定的
(2) 不同的生成树中,某一种权值的边连接完成后,形成的联通块状态是一样的
可以用这两个性质做最小生成树计数Kruskal重构树
令a,ba,ba,b路径上最长边最短: “最短的最长边”一定在MST上,所以我们求一下MST,再在MST上找a,ba,ba,b路径上的最长边。
问nnn个点mmm条边的无向连通图上任两点的最短距离,m−nm-nm−n很小:随便建一棵生成树,把图看成树上挂几条边 CF1051F The Shortest Statement
trick: 对区间[l,r][l,r][l,r]操作⇒\Rightarrow⇒ 连边l→r+1l\to r+1l→r+1
题
CF888G Xor-MST
那么最后加入的边一定是 连接i,ji,ji,j且a[i]a[i]a[i]的第ppp位和a[j]a[j]a[j]的第ppp位不同的边,用 01Trie树 找到这样的最小边。
加完最后一条边,我们再递归回去,把aaa值的第ppp位为1的点连成一个连通块,aaa值的第ppp位为0的点连成一个连通块。
CF1108F MST Unification
CF733F Drivers Dissatisfaction
根据贪心,把SSS的费用全部用来降一条边的权值不比用来降多条边的权值劣。
枚举每一条边,看一下降这条边的答案是多少,最后取最优结果即可
先用Kruskal建出MST,设sumsumsum为MST里各边的权值和。
如果降树边:
答案为sum−⌊Sci⌋sum-\lfloor\frac{S}{c_i}\rfloorsum−⌊ciS⌋(保证降完后该边是在MST里的)如果降非树边:
把降完权值后的非树边连上,原MST上出现一个环,我们找到环上最大的边删掉即为新的MST。
每条非树边对应的环上最大边边权可以用倍增预处理出来。
Code
CF1416D Graph and Queries
Kruskal重构树
不会删边。所以考虑离线,按时间倒序进行操作,删边变成加边。
但是遇到的麻烦是,操作 1 是正序进行的,如果我们倒序操作,就不知道当前哪些点 pu=0p_u=0pu=0 了。
CF1253F Cheap Robot
那么问题变成求一条从aaa到bbb的路径使得路径上每条边的disu+disv+wdis_u+dis_v+wdisu+disv+w的最大值最小(明显是满足条件的最小的ccc)。
CF1051F The Shortest Statement
CF1120D Power Tree
图论复习——最小生成树MST相关推荐
- C语言Prims求最小生成树MST的算法(附完整源码)
C语言Prims求最小生成树MST的算法 C语言Prims求最小生成树MST的算法完整源码(定义,实现,main函数测试) C语言Prims求最小生成树MST的算法完整源码(定义,实现,main函数测 ...
- 2021-06-22 离散数学图论复习笔记
离散数学图论复习笔记 仅记了自己不太熟悉容易弄混的概念,不懂的可以回到知乎连接查看. 一.图的类型 无序对--(a,b),AB之间的线 无序积--A&B,AB之间线的集合 有序对--<a ...
- 图论复习之强连通分量以及缩点—Tarjan算法
图论复习之强连通分量以及缩点-Tarjan算法 by RtPYH ----------------------------------- ...
- 数据结构实验之图论九:最小生成树_每天5分钟用C#学习数据结构(25)图 Part 6
[基础知识]| 作者 / Edison Zhou 这是恰童鞋骚年的第221篇原创文章 上一篇介绍了非连通图如何实现遍历,本篇我们再来看看生成树与最小生成树,以及实现最小生成树的一个算法:Prim算法. ...
- 数据结构实验之图论九:最小生成树_初高中数学竞赛训练----图论初步2
例题中有2019年罗马尼亚大师赛第3试题 树 树:一个连通图,如果没有一个环,则叫树. 森林:若干个独立的树形成一个森林. 链:一个特殊的树是节点中,除去两个节点的度为1,其它均为2,叫做链. 二叉树 ...
- 图论 —— 生成树 —— 最小生成树 —— Kruskal
[基本思想] Kruskal 算法基本思想是并查集思想,将所有边升序排序,并认为每一个点都是孤立的,分属 n 个独立的集合. 按顺序枚举每一条边,如果这条边连接的两个点分属两个不同的集合,那么就将这条 ...
- 图论 —— 生成树 —— 最小生成树 —— Prim
[基本思想] Prim 算法基本思想是蓝白点思想,用白点代表已进入最小生成树的点,蓝点代表未进入最小生成树的点. 每次循环都将一个蓝点 u 变为白点,并且此蓝点 u 与白点相连的最小边权 min[u] ...
- 图论复习(各类习题)
可以结合这篇博客进行复习:http://www.cnblogs.com/z360/p/7363034.html 一.强连通分量.缩点 习题: 洛谷--P2746 [USACO5.3]校园网Networ ...
- `Computer-Algorithm` 最小生成树MST,Prim,Kruskal,次小生成树
Contents 最小生成树 Algorithm Prim Code Kruskal Prim&KruskalPrim \& KruskalPrim&Kruskal算法的性质 ...
最新文章
- c语言存储多个数据,C语言中如何求数组真实存有数据的元素个数
- 最近在北京做银行软件项目亲身感受小总结
- Spring事务CallbackPreferringPlatformTransactionManager
- 手淘促活那些事儿 | 智能投放算法框架助力用户增长
- codeforces 758 A
- 学习《HTML+CSS基础课程》里的权值
- HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】(废除!!!)
- 阿里云镜像加速Docker
- Windows 下USB被禁用
- excel字符串和单元格拼接_Excel工作表中带单位求和的4个技巧,不掌握就真的Out了!...
- iconv linux 开源代码,每天一个 Linux 命令(123):iconv 命令
- 【OpenGL】各向异性过滤案例
- java黑洞数字_Java中实现数字黑洞的示例
- 矩阵键盘——按下矩阵按键,数码管显示出位置对应的字符(0123 4567 89Ab CdEF)
- 复制粘贴技巧,全选快捷键ctrl加什么?
- macOS - afconvert 命令(音频格式转换)
- PHP中文转拼音及提取首字母
- 微信最强花式操作,带你玩转 wxpy
- hackthebox-optimum(考点:hfs/windows)不用msf
- 智能ABC输入法的巧用
热门文章
- android shell用户界面,shell界面下安装和卸载Android应用程序(apk包)
- linux 端口qos,linux的qos机制 - cgroup篇 (2)
- 离线语音识别软件_从音乐识别软件起家,这家公司如何备战车载AI语音市场GGAI对话...
- java xml 追加,java – 如何将节点从xml文档追加到现有的xml文档
- Java使用TCP实现群聊 聊天室(多线程和tcp的使用)
- [C++11]函数模板的默认模板参数
- [蓝桥杯2016初赛]冰雹数-模拟
- 数据结构与算法--图论-深度优先搜索及其应用
- with grant option mysql_mysql用户及权限(WITH GRANT OPTION)
- 网络时延——发送时延和传播时延