[HNOI2014]世界树
摘要:题意:[HNOI2014]世界树 思路: 首先建好虚树。(为了方便size的预处理,强制虚数里面的根为1) 预处理出每个点最近的关键点bl,以及到它的距离。 然后一条边上(不含两端):(u->v) 且设p为u的儿子中是v的祖先的。 1.\(bl[u]=bl[v]:\ ans[bl[u]]=sz[p]
阅读全文
【HEOI2014】大工程<虚树>
摘要:虚树 我们每天都用心思索着,这究竟是为了什么呢?我想我也不知道,只是觉得如果人不思考问题就很无聊。 我觉得虚树不是什么数据结构,就是一种技巧或者工具。它能把树中
k个关键点以
O(klogk)的复杂度变成一棵节点数
2∗k以内的树。并且构树的边的信息适用广泛(如最大值,和……) 有两种构树方法
阅读全文
左偏树[可并堆]
摘要:定义: 定义一个点如果没有左右子树中的一个为0点。 d0表示这个点倒0点的最小距离 而左偏树的定义是:
d0[ls]>=d0[rs] 因此一直走rs的那条链长度是O(logn)的。[因为深度为
n的链,点数至少为
2n−1] 作用: 合并两个堆: 维护两个指针u,v一开始都指向两个堆顶;
阅读全文
[APIO2013]机器人
摘要:题意:P3638 思路:n<=9很容易想到斯坦纳树,然后就dp[i][l][r]表示合并到i号二维点,已合并区间[l,r]的最小步数。 然后转移也和原来一样。注意这里spfa或dj会超,注意到边权为1,但是有多个源点,所以两个队列,一个存储初始,另一个存储更新,然后如果一个点进入过队列2或者入过且出
阅读全文