ACM - 树链剖分
Scar_Halo
ITer
展开
-
树的中心
概念 以树的中心为整棵树的根时,从该根到每个叶子节点的最长路径最短 求法 dp[u][0]dp[u][0]dp[u][0] 表示以 uuu 为根的子树中的最长链,dp[u][1]dp[u][1]dp[u][1] 表示以 uuu 为根的子树中的次长链 注意最长链和次长链没有交集,c[u][0]c[u][0]c[u][0] /// c[u][1]c[u][1]c[u][1] 分别表示两者的决策点 设...原创 2020-04-24 00:06:28 · 298 阅读 · 0 评论 -
2020 wannafly camp day2 F 采蘑菇的克拉莉丝 —— 树链剖分
题目链接:点我啊╭(╯^╰)╮ 题目大意: 一棵树,两种操作: ①:在点 vvv 放 xxx 个蘑菇 ②:将起点变为 v$ 每次操作后计算起点收集所有蘑菇的代价  ...原创 2020-01-27 21:59:34 · 1104 阅读 · 0 评论 -
2020 wannafly camp day1 E 树与路径 —— 树上差分
题目链接:点我啊╭(╯^╰)╮ 题目大意: 有根树,求若干路径的权值和 对一条路径的权值定义为: 从起点到终点的最短路径中,向上走的边数 ××× 向下走的边数 解题思路: 对于一条路径 (u,v)(u,v)(...原创 2020-01-27 21:17:19 · 291 阅读 · 0 评论 -
树的重心
概念 以树的重心为整棵树的根时,它的最大子树最小(也就是删除该点后最大联通块最小) 定义及性质 定义1:找到一个点,删除它得到的森林中最大的子树节点数最少,那么这个点就是这棵树的重心 定义2:删除重心后得到的所有子树,其顶点树必然不超过 n/2n/2n/2 性质1:树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么他们的距离和一样 性质2:把两个树通过一条边相连得到一个新的...原创 2020-01-08 15:43:24 · 286 阅读 · 0 评论 -
HDU多校第六场 1001 Salty Fish —— 最小割模型 + 启发式合并
题目链接:点我啊╭(╯^╰)╮ 题目大意: nnn 个点根为 111 的树,每个点上有价值ai的苹果 树上有 mmm 个监控:xxx kkk ccc 在点 xxx 有一个监控,可以检测到最短距离在 kkk 以内的所有子树上的点 &...原创 2019-11-11 22:37:58 · 240 阅读 · 0 评论 -
树链剖分
名称 解释 f[u]f[u]f[u] 保存结点 uuu 的父亲节点 dep[u]dep[u]dep[u] 保存结点 uuu 的深度值 size[u]size[u]size[u] 保存以 uuu 为根的子树节点个数 son[u]son[u]son[u] 保存重儿子 rk[u]rk[u]rk[u] 保存当前 dfsdfsdfs 标号在树中所对应的节点 top[u]t...原创 2019-07-13 01:21:00 · 123 阅读 · 0 评论 -
树上差分
一、点差分 对于树上路径 path(u,v)path(u,v)path(u,v) dlt[u]++,dlt[v]++,dlt[lca(u,v)]−−,dlt[f(lca(u,v))]−−dlt[u]++, dlt[v]++, dlt[lca(u, v)] --, dlt[f(lca(u, v))] --...原创 2019-07-11 21:22:46 · 178 阅读 · 0 评论