
LCA
文章平均质量分 55
g1n0st
明日安在,无人能允知乎专栏: zhuanlan.zhihu.com/g1n0st
展开
-
[BZOJ3730][震波][动态树分治+线段树+LCA]
[BZOJ3730][震波][动态树分治+线段树+LCA]题目大意:给定一棵树,要求支持两种操作: 操作 描述 (0,x,k)(0,x,k) 求所有和节点x距离不超过K的节点权值和 (1,x,y)(1,x,y) 将节点x的权值修改为y思路:树分治题,首先求出每个重心,对重心连边形成点分树。然后在每个重心上动态开两颗线段树。用在x位置增加y表示距离重心x的位置有一个权值为y的点原创 2017-02-23 16:00:42 · 1902 阅读 · 0 评论 -
[BZOJ4317][Atm的树][LCA+点分治]
[BZOJ4317][Atm的树][LCA+点分治]题目大意:求大小为NN一棵无根树上每个点和其它所有点树上路径中第KK长的路径。思路:这种树上路径统计问题应该一眼就能看出是树分治裸题吧。。。但是即使是裸的,代码量依然大得吓人(所以LCA倍增数组开小了一位刚好溢出调了好久。)先对树点分一遍,对每个重心所管辖的所有子节点连接重心的路径都维护到重心上的权值线段树(线段树要动态开不然会炸),还要预处理出点原创 2017-02-27 16:01:36 · 696 阅读 · 1 评论 -
[BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]
[BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]题目大意:给定一颗nn个节点的树,边权均为11,初始每个点权值为00 。 其中操作QQ xx询问x点的点权,操作 MM xx dd ww把xx点周围距离不超过ww的点权值加上ww。思路:应该是一棵蛮裸的动态树分治,和BZOJ3730 : http://blog.youkuaiyun.com/g1n0st/article/details/56674原创 2017-03-06 18:27:25 · 392 阅读 · 0 评论 -
[BZOJ2953][[Poi2002]商务旅行][LCA+水题]
[BZOJ2953][[Poi2002]商务旅行][LCA+水题]就是求树上两点之间的距离。。代码:#include <bits/stdc++.h>using namespace std;const int Maxn = 50010;inline char get(void) { static char buf[1000000], *p1 = buf, *p2 = buf; i原创 2017-03-29 19:47:29 · 583 阅读 · 0 评论