分析
是一道lca题目,可以直接套模板 + 前缀和处理点权
具体思路:
1.n台电脑用n-1条网线相连,任意两个节点之间有且仅有一条路径(拆分成各自到公共祖先节点的路径——lca);
2.“延迟时间”:看成是节点点权(要求一条链上某个区间的值——前缀和)
——用sum[]存储根节点到 i 节点的点权和
LCA
三种求法:
(1)朴素求法:
先将两点位于同一深度,然后同时向上跳;一次查询:O(n^2)
(2)倍增求法:
朴素求法的改进版(朴素是一步一步跳,倍增是用f[][]优化,每次向上都是以其父节点为目标)
(3)Tarjan(留一下,还没学~)
倍增求法的步骤:
1.存图/树
2.dfs(int x,int father)更新f[][](表示节点 i 的第2^j个祖先节点)、d[](深度)