树链剖分
文章平均质量分 86
树链剖分
StaroForgin
这个作者很懒,什么都没留下…
展开
-
[航海协会]万灵药
被偶耶卷飞了。原创 2022-07-18 21:37:24 · 364 阅读 · 0 评论 -
[硫化铂]黑白树
又是讨厌的大码量题,只有OneInDark这样的zip才能随切。原创 2022-03-26 00:03:01 · 554 阅读 · 0 评论 -
[CF1208H]Red Blue Tree
还是得膜OneInDark,一眼出解法...原创 2022-02-09 16:00:50 · 515 阅读 · 2 评论 -
[硫化铂]中心城镇问题
又被JZM吊打了。原创 2022-01-20 10:26:04 · 363 阅读 · 1 评论 -
[LOJ6669]Nauuo and Binary Tree
但无论如何,卡长剖都太离谱了。原创 2021-09-27 22:45:28 · 307 阅读 · 0 评论 -
[POI2014]Hotel加强版
Hotel加强版题解很板子的一道长链剖分。首先应该是很容易想出它的dp方程式的。我们令fu,if_{u,i}fu,i表示在uuu的子树中,与uuu距离为jjj的点的个数,gu,ig_{u,i}gu,i表示在uuu的子树中,两个离它们lcalcalca距离与它们的lcalcalca与uuu距离的差值为jjj的点对个数。显然,当我们将点vvv合并到点uuu上时,有dpdpdp转移式fu,j+=fv,j−1,gu,j+=fu,jfv,j−1+gv,j+1f_{u,j}+=f_{v,j-1},g_{原创 2021-03-18 22:35:05 · 218 阅读 · 0 评论 -
[P4719]【模板】动态DP
动态DP也就是lg上面的拿到模板题。题解如果是直接求权值最大独立集的话,显然,我们有一个O(n)O(n)O(n)树形dp方法。但如果带修改的话我们每次都跑一条链明显是不合适的,O(nq)O(nq)O(nq)这T飞吧。考虑每次修改会影响那些地方的dp值,很明显,只会对这个点到根的这条链上产生影响,但如果我们找重心什么的再去对这条链进行修改是明显不行的。我们得想个办法使得每次的修改次数更少。首先,我们就想到了将dp的转移换成矩阵,这样每个位置的更改会独立出来,对于一条链上,它只会对它自身产生影响。原创 2021-03-13 14:18:12 · 161 阅读 · 1 评论 -
[hdu6566]The Hanged Man
tree题解树dp板子题。首先O(nm2)O\left(nm^2\right)O(nm2)的朴素dp做法应该是十分容易想到的,直接合并即可。由于MAX卷积什么的太,太神仙了,我都没听说过,所以显然不能用来优化转移过程降低时间复杂度,我们就考虑改变一下dp状态。首先,我们知道如果每次只合并一个数的话每次转移明显就是O(m)O(m)O(m)的了,而对于这个数我们又只需要考虑它的父亲在不在,所以很快就可以想到状压,合并时看它父亲在不在。但很明显,直接状压是不现实的,n⩽50n\leqslant 50n原创 2021-03-12 22:03:06 · 297 阅读 · 0 评论 -
[牛客2020第三场]牛半仙的妹儿Tree
牛半仙的妹儿Tree题解其实是很板子的一道树剖,但Indra大佬用分块做出来了我们发现,如果我们将3操作与之前的1操作相匹配,可以发现,3操作的答案为。上面这个式子可以拆分为。只有当上面式子的值应该是小于时它才可以不无视牛半仙。我们假设使得上式最小,故。可得。由于从到上的每一个点都有可能成为之后的祖先,而对于点最小的一定会在上取得。我们可以先将每个点的初值赋值为,之后每次1操作对到加上的标记,查询就查询到上是否有值是小于的,这些操作都可以用树链剖分来进行维护。时间复杂原创 2020-10-24 08:44:16 · 181 阅读 · 0 评论 -
[bzoj3083]遥远的国度
遥远的国度题解如果没有换根的操作,那这道题就是一个板子题了。我们只需考虑在换根的情况下如何对其进行维护了。我们发现,如果这个根在它的子树内的话,就是它所在的儿子会成为这个点的父亲,而其他点都会产生贡献,所以每次查询除这个儿子所在子树的区间即可。所以这又成一个板子题了。源码#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<a原创 2020-09-16 21:51:20 · 127 阅读 · 0 评论 -
[AHOI2005]航线规划
航线规划题解好水一树剖最先看到这道题时,有点像缩点,不过又不知道缩点咋搞,于是想到了树剖。我们会发现这是一个连通图呀,可联通图又该咋搞呢?我们发现一句很重要的话:航线破坏后不可恢复要求的又是关键航线,于是我们便想到了树。假设我们一直把它删下去,那么我们一定会得到一棵有n-1条边的树。既然图不好处理,我们为什么不反向把它变成一棵树呢?所以我们就把它离线下来,从最后的状...原创 2020-01-07 13:58:21 · 191 阅读 · 0 评论