随笔分类 - 树——长链剖分
摘要:"传送门" 给定一棵树,每个点有点权,选定$k$个叶子,满足根到$k$个叶子的所有路径所覆盖的点权和最大。 首先考虑一个贪心,每一次选择权值最大的一条链,然后把这条链上的权值清零,重复$k$次 于是~~很显然~~这样的贪心可以等价于把这棵树给剖成若干条链。那么考虑用长链剖分来搞,只要把链的长度换成所
阅读全文
摘要:"传送门" 首先这玩意儿很明显是分数规划,二分一个答案$mid$,边权变为$w_i mid$,然后看看能不能找到一条路径长度在$[L,R]$之间,且边权总和非负,这个可以转化为求一条满足条件的边权最大的路径 这个实际上可以用点分做,用单调队列可以优化到$O(nlog^2n)$,然而我不知道为什么写挂
阅读全文
摘要:题意:就是每个点有权值$a_i,b_i$,选出一条长为$m$的路径(这里的长指的是路径点数),并最小化$\frac{\sum a_i}{\sum b_i}$ 先膜一下 "zsy大佬" 首先这显然是个分数规划,我们二分一个答案$mid$,判断$\frac{\sum a_i}{\sum b_i}\leq
阅读全文
摘要:给你一棵树,定义$d_{x,i}$表示$x$子树内和$x$距离为$i$的节点数,对每个$x$求使$d_{x,i}$最大的$i$,如有多个输出最小的。 不知道什么是长链剖分的可以看看蒟蒻的 "笔记" 长链剖分的板子,具体看代码应该能懂 //minamoto include using namespac
阅读全文
摘要:题目好神仙……这个叫长链剖分的玩意儿更神仙…… 考虑dp,设$f[i][j]$表示以$i$为根的子树中到$i$的距离为$j$的点的个数,$g[i][j]$表示$i$的子树中有$g[i][j]$对点深度相同,他们到LCA的距离为$d$,且他们的LCA到$i$的距离为$d j$。或者换句话来说就是以$i
阅读全文
摘要:传送门 长链剖分的板子(又是乱搞优化暴力) 对于每一个点,我们定义它深度最深的子节点为它的重儿子(为什么不叫长儿子……),他们之间的连边为重边 然后长链剖分有几个性质 1.总链长为$O(n)$ 2.一个节点的$k$级祖先的子树深度必定大于等于当前节点的子树深度 以上两点稍微yy一下就能发现是对的 然
阅读全文

浙公网安备 33010602011771号