摘要: 多么痛的领悟! 不要认为Prim不常见就用不到! 和Kruskal一样,Prim算法也是用来求MST的,也是体现了贪心的思想。 不同的是,Kruskal是针对边而言的,Prim是针对点而言的。Kruskal适用于稀疏图,Prim适用于稠密图,更值得一提的是,Prim可以不必保存每条边。 算法思想是, 阅读全文
posted @ 2018-09-02 21:57 Mr^Kevin 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 本想着做完这道题,就暂时告别MST,但越到了这个时候,惊喜也就越多,呵呵。 题目链接:https://www.luogu.org/problemnew/show/P1265 哎,上去就mengbi第二个规则,自己试了好半天,始终举不出例子来,只好去看题解,,,真想吐血!原来第二种情况根本不存在,每个 阅读全文
posted @ 2018-09-02 21:38 Mr^Kevin 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 堆是一种很常用的数据结构,自己手打堆当然可以,但是为了不必要的出错,一般可以选择c++ STL中的优先队列priority_queue。 首先是库的调用。 然后就是优先队列的声明。 如果要使用小根堆,可以这样写。 当然如果数据类型是自定义结构体的话,还可以通过重载运算符的方式。 阅读全文
posted @ 2018-09-02 20:18 Mr^Kevin 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.org/problemnew/show/P1991 呃呃,最小生成树里确实没有类似的性质。但我们假设我们已经选出了n-1条边,现在就要考虑安装卫星电话了。安装卫星电话会使得一些边的权值变为0,就一定会进入最小生成树。假如某条边本来就在MST当中(且不是最 阅读全文
posted @ 2018-09-02 07:43 Mr^Kevin 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 本题在洛谷上的链接:https://www.luogu.org/problemnew/show/P2330 这是一道省选题。。。但却是普及组的难度,是我们变强了吗? 这道题其实是对最小生成树基本性质的考察,首先,对于一个有n个点的图,要想连通所有点,最少需要n-1条边(刚好连通且没有环,其实就是树) 阅读全文
posted @ 2018-09-02 00:40 Mr^Kevin 阅读(113) 评论(0) 推荐(1) 编辑