【个人笔记】树上前缀和
(提前声明:本文内图片均来自于Bilibilli董晓算法的视频内截图,如有侵权,联系速删)
(提前声明:本文内图片均来自于Bilibilli董晓算法的视频内截图,如有侵权,联系速删)
(提前声明:本文内图片均来自于Bilibilli董晓算法的视频内截图,如有侵权,联系速删)
树上前缀和主要应用于快速求树上2个点之间的点权值和或边权值和。
点权值和
设\(s_i\)表示从根节点到节点\(i\)的点权值和,若要求点\(i\)到点\(j\)的路径中所有点权值的和,就可以使用公式:
\[p_{i,j}=s_i+s_j-s_{lca(即最近公共祖先)}-s_{father_{lca}(lca的父节点)}
\]
边权值和
设\(s_i\)表示从根节点到节点\(i\)的边权值和,若要求点\(i\)到点\(j\)的路径中所有边权值的和,公式如下:
\[p_{i,j}=s_i+s_j-2\times s_{lca}
\]
(本文仅供个人学习笔记参考使用,若有错误欢迎指出,不喜勿喷)
本文作者:2789617221guo
本文链接:https://www.cnblogs.com/2789617221guo/p/18706345
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步