K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
假设我们需要统计树中任意路径上的节点权值,采用点差分方案:先对差分数组做增量标记,再通过一次后序遍历累加每个节点的子树和,即可得到每个节点的最终权值。
diff[u] += 1,diff[v] += 1,diff[lca] -= 2
diff[u] += 1
diff[v] += 1
diff[lca] -= 2
diff[u] += 1,diff[v] += 1,diff[lca] -= 1,diff[father[lca]] -= 1
diff[lca] -= 1
diff[father[lca]] -= 1
diff[u] += 1,diff[v] += 1,diff[father[lca]] -= 2
diff[father[lca]] -= 2
diff[u] += 1,diff[v] -= 1,diff[lca] += 1,diff[father[lca]] -= 1
diff[v] -= 1
diff[lca] += 1