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