P2664 树上游戏 https://www.luogu.org/problemnew/show/P2664 分析: 点分治。 首先关于答案的统计转化成计算每个颜色的贡献。 1、计算从根出发的路径的答案:如果某一个颜色是从根到这个点的链上的第一次出现的,那么这个颜色会对根产生siz[x]个贡献。(根 ...
分类:
其他好文 时间:
2018-09-28 17:35:24
阅读次数:
164
题面 思路 点分治非常$naive$,不讲了,基本思路就是记录路径最小最大值.....然后没了 重点讲一下LCT的做法(好写不卡常)(点分一堆人被卡到飞起hhhh) 首先,这个路径限制由边限制决定,而树中的每条边都是割边 考虑一条边$i$,范围是$[l_i,r_i]$,那么当时间不在这个范围内的时候 ...
分类:
其他好文 时间:
2018-09-27 17:05:48
阅读次数:
166
方法:指针扫描数组 每次选择树的重心作为树根,从树根出发进行一次DFS,求出点到树根的距离,把节点按照与树根的的距离放进数组d,设置两个指针L,R分别从前、后开始扫描,每次满足条件时答案累加R-L。,之后减去子树的满足条件的情况,删除根节点,对其子树继续上述操作,不断累加答案。 代码: ...
分类:
其他好文 时间:
2018-09-26 22:10:16
阅读次数:
203
概述 点分树代表了树上的所有路径,如同分治代表了序列中的所有区间。在点分树节点上统计经过这个点的树链的答案。 距离k联通块修改/询问 此类问题的做法是通用的。 对每个点分树结点开两棵动态开点线段树,一棵记录以结点到自己的距离为关键字的结点信息,另一棵记录以结点到点分树父亲的距离为关键字的结点信息。 ...
分类:
其他好文 时间:
2018-09-25 21:55:17
阅读次数:
170
我们都做过一道题(?)货币兑换,是用cdq分治来解决不单调的斜率优化 现在它放到了树上.. 总之先写下来dp方程,$f[i]=min\{f[j]+(dis[i]-dis[j])*p[i]+q[i]\} ,j是i的祖先,dis[i]-dis[j]<=l[i]$ ,其中dis[i]表示1号点到i号点的距 ...
分类:
其他好文 时间:
2018-09-24 18:56:27
阅读次数:
159
之前学了不少的东西,我不能说是学会了,只能说是,见过了不少的东西,但是真正学精学会的,可能没有几个 对思维的培养真的是太差了,做题少的弊端暴露地体无完肤 在这里我总结一下以前看过的还有学过的所有的东西,梳理一下自己的知识脉络,对于不熟悉的东西还需要去看博客来加强理解(同时也要看如何实现这些东西) 数 ...
分类:
其他好文 时间:
2018-09-24 12:46:11
阅读次数:
180
之前搞了一个树的中心,结果当时把点分治给扔下了,现在搞一搞。其实点分治的分治思想很明显,就是把树切成一个个小树,然后在重心的位置再分治就行了。 代码实现有一定困难,但就我觉得前一个函数和树刨的dfs1很像吗,详情见代码。 题干: 代码: ...
分类:
其他好文 时间:
2018-09-23 22:15:00
阅读次数:
137
传送门 这道题好神奇啊……如果要是不带修改的话那就是普通的点分治了,每次维护子树中距离次大值和最大值去更新。 不过这题要修改,而且还改500000次,总不能每改一次都点分治一次吧。 所以我们来认识一个新东西:带修改的点分治,动态点分治! 它可以强势解决带修改点分治问题(但是这玩意真的太难了我这个菜鸡 ...
分类:
其他好文 时间:
2018-09-15 00:43:05
阅读次数:
194
用途 大规模地处理树上路径 做法 先考虑对x为根的子树做dfs来处理x子树到x的路径,然后统计答案,然后再递归地做x的儿子... 然而当树退化成链时,最差复杂度是$O(n^2)$的 类比一维中二分的做法,其实是使左右区间尽量平均,那我们也让我们要处理的点的子树大小尽量平均 具体来说,我们每次想要做x ...
分类:
其他好文 时间:
2018-09-14 23:08:48
阅读次数:
180
题意自己看。。。 思路 没想到今(昨)天刷着刷着点分治的水题,就刷出来了一个点分树。。。 然后就疯狂地找题解,代码,最后终于把它给弄懂了。 点分树——动态点分治,对于此题来说,我们发现设u为当前的补给站位置,v是它的一个儿子。同时设dis(i,j)为树上i点到j点的距离。sumi为以i为跟的子树中d ...
分类:
其他好文 时间:
2018-09-11 22:00:19
阅读次数:
217