生成树
cggwz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一句话算法:最大生成树(北大三日游前纪念)
我们先一句话把最大生成树说完:很简单,把所有的权值设置成负的,扔入kruscal即可。(显然权值全为正的情况) 明天,我的北大三日游就要开始了。 高兴?紧张? 不知道,已经没感觉了,反正我的目标是清华 尽力做好就行了,也算是为未来积累经验。 游记是少不了的,回来当天就会发! 当然与游记一起发的还有我这几天来复习准备的每天学习记录,供未来参加暑期课堂的朋友们参考。 敬请期待!...原创 2018-07-26 20:22:12 · 1981 阅读 · 0 评论 -
火车运输(NOIP2013)
传送药水 (喝了这一壶传送药水,保你看了什么题都觉得神清气爽) 这题不算水。 首先想到,肯定需要跑一遍最大生成树,因为我们需要尽可能大的限制。 那么,接下来就是求两点之间最小限制。 那么就是我们就可以用求LCA(最近公共祖先)来解决这个问题。 所以就倍增好了。 我们这里倍增的有两个数组,一个是祖先,另一个是当前点到祖先的路上的最小限制。 最后理一遍思路: 先kruskal建立一个...原创 2018-08-17 22:17:59 · 389 阅读 · 0 评论 -
最小生成树练习3
畅通道路放图祭命运共同体祭祀完毕!下面来看这道题。这输入方式……不明摆着让我们用kruscal吗?只是这道题与之前两道不一样的地方是,有部分道路是事先修好的。那么我们就稍微变通一下即可。我们回想一下,我们怎么记录生成树的?并查集!所以我们只需要在读入时,把现成的边在并查集中连在一起即可,剩下的这个边就可以直接扔掉,不需要放在kruscal的排序序列中。剩下的按kruscal做一遍...原创 2019-06-26 12:21:03 · 217 阅读 · 0 评论 -
生成树专题训练1
好长时间没碰电脑了,决定把简单的东西再过一遍,同时加深理解,提高认知,对其有更深的认识。比较常用的应该改是kruscal了。kruscal是用边做的,把边排序,然后按顺序加边,直到形成一棵树。今天的例题是个简单题。poj2485就不翻译了,应该可以看懂。显然是直接用最小生成树,然后再找边的时候,保存最后一次加的边的长度,即为最终答案。代码如下:#include<cstdio&...原创 2019-06-23 23:17:06 · 194 阅读 · 0 评论 -
最小生成树练习2
农场光纤以上是poj1258这道题和昨天的那个题几乎一样,只是求的量不同。我们同样用kruscal(易于编写,而且效率很高【刘汝杰原话】)。在找边的过程中用ans将所有的边权加在一起即可。注意,本题并没有明确的结束标志,所以用scanf的返回值判断即可。如果结束,返回值为EOF。代码如下:#include<cstdio>#include<cstring>...原创 2019-06-24 16:14:09 · 186 阅读 · 0 评论
分享