![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树链剖分
文章平均质量分 61
a_crazy_czy
日后,尽量别叫今天的泪白流。
展开
-
[JZOJ4468][JSOI2016?]轻重路径
题目大意给定一棵nn个节点的二叉树,对其进行轻重路径剖分,sizesize相同则优先选择左儿子。 有qq个操作,每次会删除一个点xx(有持续影响),要求动态维护轻重路径剖分(如果sizesize相同优先保留原本剖分方案)。 你需要输出q+1q+1个数,第一个表示删点前的重边指向节点编号之和,后面qq个都是删点后的重边指向节点编号和。1≤n,q≤2000001\le n,q\le 200000题目原创 2016-04-24 12:38:25 · 1114 阅读 · 1 评论 -
[JZOJ4567]nekopara
题目大意一棵树,有nn个节点,边有权值lil_i。给定数组aa。 有qq个询问,每次询问给出一条路径的起点、终点和limlim。你要将路径展开,设某个点ii前面连续的ll大于limlim的边的数量为e(i)e(i)。求 ∑x on pathae(x)\sum_{x\ on\ path}a_{e(x)}1≤n,q≤105,ai≤103,li,l≤1091\le n,q\le10^5,a_i\l原创 2016-06-30 21:49:08 · 1049 阅读 · 0 评论 -
[Codeforces 487E]Tourists/[JZOJ4691]旅行/[UOJ#30]Tourists
题目大意给定一个有nn个点mm条边的无向图,每个点有点权wiw_i。 有qq个操作,每次询问所有点xx到点yy的简单路径上最小点权是多少或者将点xx权值改为yy。 1≤n,m,q≤1×105,1≤wi≤1091\le n,m,q\le 1\times 10^5,1\le w_i\le10^9题目分析第一眼看见这题应该有个很显然的想法,就是点双连通分量缩点然后树链剖分。 但是实际想一想,细节还是原创 2016-08-18 19:50:15 · 1370 阅读 · 0 评论 -
[JZOJ5157]没有上司的舞会
题目大意一棵树,一开始只有00号节点,有qq次操作,每次都会在某一个节点接上一个新的节点。 在每次操作结束后,请输出这棵树的最大独立集。 本题强制在线。1≤n≤3×1051\le n\le3\times10^5题目分析做这题时我采用的是immortalCO神犇的UOJBlog《基于变换合并的树上动态 DP 的链分治算法》里面的想法。 考虑树上最大独立集的dpdp算法,原创 2017-06-23 21:59:16 · 667 阅读 · 0 评论 -
[LNOI2014][BZOJ3626]LCA
题目大意一棵有nn个节点的树(根为11),令deep(x)deep(x)表示点xx的深度(到根距加11)。 有qq个询问,形如(l,r,z)(l,r,z),查询 ∑x=lrdeep(lca(x,z))\sum_{x=l}^r deep(lca(x,z)) 答案对201314201314取模。1≤n,q≤500001\le n,q\le50000题目分析求区间和太麻烦,我们差分一下,变成求前原创 2016-06-26 18:43:32 · 1308 阅读 · 0 评论 -
一种利用重链剖分优化一类树形动态规划空间复杂度的方法
Origin在某一场GDOI模拟赛上,一道好好的点分治题目,本蒟蒻强行大力优化暴力碾了过去。这题中我算法的瓶颈不在时间复杂度,而在于空间复杂度。为了解决这个问题,我想到了一种使用重链剖分来优化空间复杂度的方法。Problem首先我们要明确一下这种方法的适用范围: 一个点对该点父亲的贡献,可以直接利用该点已知的信息以及该点父亲已有的信息计算得,不需要依赖该点的兄弟或者其它点的信息。 比如我们现在要原创 2017-04-12 22:08:06 · 1008 阅读 · 0 评论 -
[POI2014][BZOJ3522/4543]Hotel/[JZOJ5357]校门外的树
题目大意给定一棵nn个点的树,求树上两两距离相等的点三元组个数。1≤n≤1051\leq n\leq 10^5题目分析考虑dpdp。 令fx,if_{x,i}表示xx为根的子树内,距离xx为ii的点的个数;gx,ig_{x,i}表示以xx为根的子树中,到xx距离相等而且到lcalca的距离比lcalca到xx距离要大ii的点对个数(说白了就是那些可能的在xx子树外的第三个点伸出了xx子树ii的距离原创 2017-09-11 22:41:08 · 591 阅读 · 0 评论