![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树和森林
树和森林
linbinwu123
peaceful life is enough
展开
-
2020杭电多校第六场 A Very Easy Graph Problem 点分治 (HDU 6832)
A Very Easy Graph Problem不知道有没有人跟我一样点分治写的…题解根据题意,第iii条边长度为2i2^i2i,且21+22+⋅⋅⋅+2i−1=2i−1<2i2^1+2^2+···+2^{i - 1} =2^i-1<2^i21+22+⋅⋅⋅+2i−1=2i−1<2i,即后面加进去的边要大于前面所有边之和那么显然,如果在加入当前边(u,v,2i)(u,v,2^i)(u,v,2i)之前,uuu和vvv已经连通了,我们就不用再加这条边了(加之前能连通,而且根据上面说的原创 2020-08-06 20:52:51 · 452 阅读 · 3 评论 -
2020牛客多校第四场A题 Ancient Distance dfs序+线段树+k级祖先
Ancient Distance题意NNN个点以点111为根的树,在树上确定KKK个关键点,每个点的权值valvalval为点与点到根节点上碰到的第一个关键点的距离(若路径上没有关键点, 那么权值为inf\infinf),答案为所有点中最大权值的最小值。现在求K=1,2,...,NK=1,2,...,NK=1,2,...,N的答案之和题解题意比较难理解,看看样例应该能懂如果确定KKK值,那么我们单次得到答案应该是可以用树形dp来解决的,总体的复杂度就是O(N2)O(N^2)O(N2)现在反过原创 2020-07-22 10:57:15 · 1224 阅读 · 2 评论 -
虚树——学习笔记
在这里插入代码片原创 2020-04-28 23:18:52 · 226 阅读 · 0 评论 -
CF1296F - Berland Beauty 树链剖分
CF1296F - Berland Beauty题意NNN个点N−1N-1N−1条边的树,现在有MMM个条件:点uuu到点vvv的路径上权值最小的边为www问你能不能构造出这样的边权满足所有条件,如果能输出每条边的边权,不能输出−1-1−1题解处理uuu到vvv的所有路径,这里用树剖即可然后想到一条边有多个可能的权值,我们只能取最大的可能权值,因为取小了会使其他条件不符所以将条件按w...原创 2020-03-16 13:38:18 · 173 阅读 · 0 评论 -
CF208E - Blood Cousins 树上启发式合并
CF208E - Blood Cousins树上启发式合并学习笔记题意NNN个点的森林,MMM次询问,每次求viv_ivi有多少个点有pip_ipi级公共祖先分析转化题意:找到询问点vvv的kkk级祖先uuu,然后找到uuu的子树下面与点uuu深度差为kkk的点有多少那么维护的子树信息就是,cnt[i]cnt[i]cnt[i]为深度为iii的节点个数然后我们查询问答案就是cnt[...原创 2020-03-01 15:06:02 · 213 阅读 · 0 评论 -
Sgu507 - Treediff 树上启发式合并
Sgu507 - Treediff树上启发式合并学习笔记题意NNN个点以1为根的树,其中MMM个点为叶节点,只有叶节点有权值aia_iai现在求每一个非叶节点的子树中,任意两个叶节点的权值差的绝对值最小是多少(如果不存在输出231−12^{31}-1231−1分析我们需要维护的信息是,子树中每一个叶节点的权值当我们新加入一个叶节点的值valvalval的时候,我们只需要找小于val...原创 2020-03-01 14:37:39 · 624 阅读 · 0 评论 -
树上启发式合并——学习笔记
600E - Lomsat gelral原创 2020-03-01 14:27:04 · 360 阅读 · 0 评论 -
HackerEarth - The Grass Type 树上启发式合并
HackerEarth - The Grass Type题意NNN个点以111为根的树,每个节点有一个权值AiA_iAi,现在查询有多少个点对(u,v)(u,v)(u,v),使得Alca(u,v)=Au∗AvA_{lca(u,v)}=A_u * A_vAlca(u,v)=Au∗Av,其中lca(u,v)lca(u,v)lca(u,v)为点uuu和点vvv的最近公共祖先分析这里的lc...原创 2020-03-01 14:14:30 · 231 阅读 · 0 评论 -
CF570D - Tree Requests 树上启发式合并
CF570D - Tree Requests题意NNN个点以111为根的树,每个节点都有对应的字母s[i]s[i]s[i],MMM次查询,每次判断以uiu_iui为根的子树中,深度为hih_ihi的节点能否组成一个回文串(字母顺序可以任意改变),如果能输出Yes,否则输出No分析树上启发式合并入门题,查询的子树信息就是对应高度都有什么字母因为这里节点的顺序能够改变,所以构成回文串只需...原创 2020-03-01 13:23:39 · 304 阅读 · 0 评论