首页 > TAG信息列表 > 震波
P6329 【模板】点分树 | 震波
\(\text{Solution}\) 点分树就是将点分治过程中的重心连成一棵虚树 对点分树子树信息的记录,就是点分治处理每个重心时需要的信息 这样就可以留下点分治的过程,支持多次修改和查询 点分树树高 \(O(log n)\) 且 \(\sum size_x = O(n \log n)\) 可以使用很多暴力的手段 但要注意:点分树P6329-[模板]点分树 | 震波
正题 题目链接:https://www.luogu.com.cn/problem/P6329 解题思路 给出\(n\)个点的一棵树,每个点有权值,有\(m\)次操作 修改一个点\(x\)的权值为\(y\) 询问距离点\(x\)不超过\(k\)的所有点点权和 解题思路 点分树的模板题,先点分治构造出点分树,然后在上面维护信息。 对于每个点维【洛谷P6329】【模板】点分树 | 震波
题目 题目链接:https://www.luogu.com.cn/problem/P6329 在一片土地上有 \(n\) 个城市,通过 \(n-1\) 条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为 \(1\),其中第 \(i\) 个城市的价值为 \(value_i\)。 不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发【BZOJ3730】震波(点分树)
点此看题面 大致题意: 给你一棵树,每个节点有一个权值,需要实现两种操作:求与节点\(x\)距离不超过\(k\)的所有点的权值和;单点修改。(强制在线) 前言 我还是太弱了。。。 先想这道题各种复杂的细节想了半天,总共码了一个多小时。 然后,交上去又是\(RE\)又是\(TLE\),看到这是强制在线的题目,自BZOJ - 3730 震波 (点分树+树状数组)
两种操作: 1.查询与树上结点x距离不超过k的结点权值之和 2.将结点x的权值修改为y 点分树模板题。 首先考虑一种比较暴力的做法:用树形dp的思想,将树转化成有根树,设f[u][k]为结点u子树下与其距离不超过k的点权和,则ans(x,k)=f[u][k]+f[fa[u]][k-1]-f[u][k-2]+f[fa[fa[u]]][k-2]-f[fa[u]震波
在一片土地上有 $N$ 个城市,通过 $N-1$ 条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为 $1$,其中第 $i$ 个城市的价值为 $value[i]$。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。 接下来你需要在线处理 $M$ 次操作:- $0~x~k$ 表示发生了一次bzoj3730. 震波
动态点分治 考虑从每一个"块"里找到距离k范围内的点的和 为了去重, 每个x维护两个线段树:(都是关于自己分治树子树的点) 1.下标为距离x的距离,权值为val的 2.下标为距离x的分治树father的距离,权值为val 这样,统计的时候 计算分治树祖先块的时候,把从自己那里出来的块的东西再减去 注