长链剖分
文章平均质量分 92
SC.ldxcaicai
我很菜=_=
展开
-
bzoj4543: [POI2014]Hotel加强版(长链剖分+dp)
传送门代码:长链剖分好题。题意:给你一棵树,问树上选三个互不相同的节点,使得这个三个点两两之间距离相等的方案数。思路:先考虑dpdpdp。fi,jf_{i,j}fi,j表示iii子树中离iii距离为jjj的点数,gi,jg_{i,j}gi,j表示iii子树中所有满足dist(lca(u,v),i)−dist(lca(u,v),i)=jdist(lca(u,v),i)-dist(l...原创 2019-01-08 17:46:02 · 481 阅读 · 0 评论 -
bzoj3252: 攻略(长链剖分+贪心)
传送门长链剖分好题。题意:给一棵带点权的树,可以从根节点到任一叶节点走kkk次,走过的点只能计算一次,问kkk次走过的点点权值和最大值。思路:考虑将整棵树带权长链剖分,这样链与链之间是不会重复选择的。然后每条链都对应一种方案,我们贪心选择前kkk大即可。代码:#include<bits/stdc++.h>#define ri register intusing na...原创 2019-01-19 16:27:22 · 296 阅读 · 0 评论 -
vijos lxhgww的奇思妙想(长链剖分)
传送门长链剖分模板题。题意简述:允许O(nlogn)O(nlog_n)O(nlogn)预处理,让你支持O(1)O(1)O(1)查找任意一个点的kkk级祖先。思路:因为要O(1)O(1)O(1)求,因此需要用到长链剖分的一些性质。所谓长链剖分是类比重链剖分的一种划分树的方式,我们考虑将整棵树用若干条极长链拼接起来就是长链剖分。那么它有如下几个几个性质:所有长链的长度之和为O(n)O...原创 2019-01-06 22:31:12 · 205 阅读 · 0 评论 -
codeforces 1009F. Dominant Indices(长链剖分)
传送门长链剖分模板题。题意:给出一棵树,设fi,jf_{i,j}fi,j表示iii的子树中距离点iii距离为jjj的点的个数,现在对于每个点iii要求出使得fif_ifi取得最大值的那个jjj。思路:有一个明显的状态转移式fi,j=∑v∈sonifv,j−1f_{i,j}=\sum_{v\in son_i}f_{v,j-1}fi,j=∑v∈sonifv,j−1,那么考虑对这棵树...原创 2019-01-08 17:04:24 · 312 阅读 · 0 评论 -
2018.11.03 NOIP模拟 树(长链剖分优化dp)
传送门考虑直接推式子不用优化怎么做。显然每一个二进制位分开计算贡献就行。即记录fi,jf_{i,j}fi,j表示距离iii这个点不超过jjj的点的每个二进制位的0/10/10/1个数。但直接存是会爆炸的。考虑到每个数只会被用一次,所以可以考虑主席树那种复用信息的思想来继承长链后代的信息,然后短链直接暴力统计贡献就行。由于ldxldxldx蒟蒻是口胡选手只会暴力写法,因此正解差不多是照...原创 2018-11-03 22:42:26 · 249 阅读 · 0 评论 -
bzoj3653: 谈笑风生(长链剖分优化dp)
传送门长链剖分优化dpdpdp水题。题意简述:给一棵树,mmm次询问,每次给一个点aaa和一个值kkk,询问满足如下条件的三元组(a,b,c)(a,b,c)(a,b,c)的个数。a,b是c的祖先a,b的距离不超过k思路:考虑单独处理每一个询问怎么做。显然a,ba,ba,b的位置关系有两种。bbb是aaa的祖先,此时ccc一定在aaa子树中,这种情况的三元组个数是(sizea...原创 2019-01-19 17:08:28 · 472 阅读 · 0 评论 -
bzoj1758: [Wc2010]重建计划(01分数规划+长链剖分+线段树)
传送门长链剖分好题。题意简述:给一棵树,问边数在[L,R][L,R][L,R]之间的路径权值和与边数之比的最大值。思路:用脚指头想都知道要01分数规划。考虑怎么checkcheckcheck。发现就是求在转化成真·边权之后有没有长度在[L,R][L,R][L,R]之间的路径权值是大于0的。然后可以设计状态fi,jf_{i,j}fi,j表示iii开头长度为jjj的路径最大值,这个可...原创 2019-01-21 13:03:51 · 361 阅读 · 0 评论 -
线段树(合并/分治)&&重/长链剖分&&主席树专题(持续更新中)
常规线段树(简单)模板 树剖区间取负,单点修改维护最大最小总和 单点修改维护根节点乘积 维护区间连续(0/1)(0/1)(0/1)的长度 根据逆序对数还原排列 双指针+线段树永久化标记 505050多棵线段树动态开点 线段树(树状数组)求逆序对 单点插入区间查询 区间开根区间求和 单点修改区间最大连续和线段树与算法(简单)优化dpdpdp 线段树合并 李超线...原创 2018-07-28 16:01:09 · 3201 阅读 · 9 评论 -
COGS2652 秘术(天文密葬法)(分数规划+长链剖分)
传送门题意:nnn个点的树,每个点两个值a,ba,ba,b,问长度为mmm的路径∑ai∑bi\frac{\sum a_i}{\sum b_i}∑bi∑ai的最大值。思路:一眼要01分数规划,考虑checkcheckcheck可以用点分治水掉。然而也可以用长链剖分,复杂度降低一个logloglog。代码:#include&lt;bits/stdc++.h&gt;#define r...原创 2019-03-11 18:43:24 · 179 阅读 · 0 评论