树链剖分
蒟蒻ym菊苣
这个作者很懒,什么都没留下…
展开
-
hdu-5029
这是一道树链剖分的题目 做法:1.对树进行剖分,在更新的区间段上的左端点,打(谷物种类,1)标记,表示谷物加入该区间段的节点,在右端点加1的位置,打(谷物种类,-1)标记,表示减去前面加上的谷物,消去对后面区间段的影响。 2.以谷物种类为下标,维护区间段内,谷物数量的最大值,还有,当前最大值的谷物种类。从左向右加入标记,即可求出答案。 #include #include #include #原创 2015-09-12 09:25:21 · 242 阅读 · 0 评论 -
hdu-5405
这是一道大树链剖分的题。 1.我们可以发现:a为:所有点权之和的平方,bi为:消去链上的点后,所形成的某棵子树的点权之和,那么,s = a-所有bi的平方的和,s即为我们要查询的值 2.所以我用树状数组维护了两个域,一个是当前节点的子节点的bi的平方的和(不包括在当前链上的子节点),另一个维护的的是以i节点的权值,当然查询out[i]到in[i]-1的范围内的和,就可以求出以i为根节点原创 2015-09-17 10:14:43 · 525 阅读 · 0 评论