算法导论思考题 - 瓶颈生成树

列思路,以后填坑。

a. 证明:最小生成树是瓶颈生成树

证略

b. 给定图G和整数b,线性时间内判断瓶颈生成树T值是否不超过b

解:DFS或BFS遍历图G,跳过所有权值大于b的边,最后若有节点未遍历到,则T值大于b,否则不超过b

c. 求瓶颈生成树T值

  1. 求出边权值的中位数(类似于求nth element一类问题)M,以此将图G的边按权值分成两部分,一部分小于等于M,另一部分大于M

  2. 利用b提出的方法判断图G瓶颈生成树的T值是否不超过M,也就是看这个T值位于大小哪半边

  3. 若位于小半边,则将大半边里的边删除,并回到步骤1

  4. 若位于大半边,则小半边组成的图必不连通,将其连通分量各收缩成一个点,再和大半边重新组成一个图G2,并回到步骤1

注:4步的收缩过程会用到并查集

时间: 2024-08-05 07:09:45

算法导论思考题 - 瓶颈生成树的相关文章

[算法导论 Ch9 中位数和顺序统计量] Selection in O(n)

1. 寻找第k大(小)的数 假设数据存储在数组a[1..n]中 首先,寻找一个数组中最大或者最小的数,因为最大(小)的数一定要比其他所有的数大(小),因此至少要比较完所有的pair才能确定,所以时间复杂度在O(n).那么寻找第k大(小)呢? 比较直观的,就是对数组中国所有的数据先进行排序,在我们这种渣渣的计算机入门选手而言,可选的有QuickSort,MergeSort和HeapSort,甚至是ShellSort等一些比较高级的方法啊...一般的代价都在O(n*logn)上,然后直接取出即可.

算法导论23章思考题(转载)

23-1次优最小生成树 a. 最小生成树唯一性证明: 已知当前构造的边集A是最小生成树的子集.令无向图G的一个切割是,显然该切割是尊重A的.已知跨越该切割的轻量级边对于A是安全的,又因为该无向图G的每条边的权值都不相同,所以对于当前A而言,安全边有且只有一条,即对于每个状态下的A,构造最小生成树的方式是唯一的.所以最小生成树是唯一的. 次优最小生成树不唯一性证明: 如上图:{(C, D), (A, D), (A, B)} 和 {(C, D), (A, C), (B, D)} 是两个次优最小生成树

《算法导论》思考题15-2 整齐打印

画外音:没想做到15-2题也是费了一番周折,看来<算法导论>里题都不是白给的 整齐打印问题: 考虑在一个打印机上整齐地打印一段文章的问题.输入的正文是n个长度分别为L1.L2.…….Ln(以字符个数度量)的单词构成的序列.我们希望将这个段落在一些行上整齐地打印出来,每行至多M个字符.“整齐度”的标准如下:如果某一行包含从i到j的单词(i<j),且单词之间只留一个空格,则在行末多余的空格字符个数为 M - (j-i) - (Li+ …… + Lj),它必须是非负值才能让该行容纳这些单词.我

《算法导论》图相关算法小结

最近又抽空读了一遍<算法导论>,关于图的内容贯穿了多个章节(比如在动态规划一章埋了无权最短路径的伏笔,后面才专门讲),适用条件各异,而且都有证明过程. 如果不打算熟记证明,仅仅是应用,遇到具体场景再去回忆适用于哪种算法不太方便. 以下内容以手头的机械工业出版社基于原书第2版的译本整理了一下,便于速查. 不包含思考题.标注为"*"的章节和习题内容. 符号定义 一般地, 图G=(V, E),其中V代表顶点集合,E代表边集合.ω(u, v)代表从顶点u到顶点v的边的权值. 如果ω

POJ 1861 ——Network——————【最小瓶颈生成树】

Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15268   Accepted: 5987   Special Judge Description Andrew is working as system administrator and is planning to establish a new network in his company. There will be N hubs in the c

《算法导论》读书笔记--为什么要读

以前一直想读一遍<算法导论>,不过由于自己犯懒一直没有开始.前两天报一个实习的测试,小算法都不会写,感觉比较糟糕,意识到应该开始读算法了. 作为数学系的人,虽然没有学过数据结构和算法,不过想来好好读不会很难:加上自己对于语言的基础太差,有不忍直视的"码力",学算法正好又能顺便用一遍c++,一举两得. 那么为什么要写博客呢?首要的当然是自我监督,其次,写的博客可以作为非常珍贵的资料,用于以后的复习. 下面说说打算怎么读:1.把每一部分都读懂 2.把关键点提取出来写成笔记 3.

算法导论--最小生成树(Kruskal和Prim算法)

转载请注明出处:勿在浮沙筑高台http://blog.csdn.net/luoshixian099/article/details/51908175 关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vi与vj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vi与vj都有路径相通,则称该有向图为强连通图. 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权:权代表着连接连个顶点的代价,称这种连通图叫做连通网. 生成树:一个连通图的生成树是

(最小生成树/最小瓶颈生成树) 2017武汉现场赛 - Wifi Relay

题意: n个无线AP,有xy坐标属性,现在n个无线AP要桥接在一起不能断开连接,现在要求无线AP无线网络的覆盖半径最小是多少 分析: 看起来是像是最小生成树,这里是是求生成树中最长的边最短,就是最小瓶颈生成树. 可以证明最小瓶颈生成树就是最小生成树,详细看刘汝佳<算法入门经典训练指南>343页. 当时现场的时候,想试试最小生成树了,结果以为n方复杂度过不去,就没写,现在想起来,真是坑哦. 这题n有10000,所以不能直接建邻接矩阵,而是采用动态计算距离就行了. 比赛结束了随便一写就A了...

电子书 算法导论.pdf

有关算法的书中,有一些叙述非常严谨,但不够全面:另一些涉及了大量的题材,但又缺乏严谨性.<算法导论(原书第3版)/计算机科学丛书>将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受.全书各章自成体系,可以作为独立的学习单元:算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂:说明和解释力求浅显易懂,不失深度和数学严谨性. <算法导论(原书第3版)/计算机科学丛书>全书选材经典.内容丰富.结构合理.逻辑清晰,对本科生的数据结构课