
树的点分治
YihAN_Z
ただのあほです
展开
-
BZOJ 3697 采药人的路径 树的点分治
题目大意:给出一棵n个结点的树,边权为1或-1,求有多少条路径边权和为0并且能在路径上找到一个在起点与重点之间的休息点(不能是起点或终点)满足起点到休息点、休息点到终点的路径边权为0不是那么裸的点分治。 首先考虑在一棵子树中如何找到边权和为0的路径。由于边权只有1和-1,和的绝对值不会超过n,记录一下权值为i的路径分别有多少条,其中i属于[-n,n]。这样i与-i组合形成的路径边权和为0。 再考原创 2017-04-04 00:03:17 · 510 阅读 · 0 评论 -
BZOJ 3365 [Usaco2004 Feb]Distance Statistics 路程统计 树的点分治
题目大意:给出n(n<=50000)个结点的树,求有多少条路径长度不超过K求解有关树上的路径问题可以使用树的点分治。算法流程: 1.选取当前子树的重心,将无根树转为有根树 2.处理过当前根的路径对答案的贡献 3.标记根节点,表示删除根节点 4.递归处理每一个子树#include <cstdio>#include <cstring>#include <algorithm>#define原创 2017-04-02 22:49:13 · 396 阅读 · 0 评论