Algorithm 带修改的树路径查询
问题: 您将获得一个具有n个节点的树(最多可10^5个节点)和n-1个双向边。假设每个节点包含两个值:Algorithm 带修改的树路径查询,algorithm,tree,time-complexity,depth-first-search,lowest-common-ancestor,Algorithm,Tree,Time Complexity,Depth First Search,Lowest Common Ancestor,问题: 您将获得一个具有n个节点的树(最多可10^5个节点)和n-1个双向边。假设每个节点包含两个值: 它是索引(只是节点的一个唯一数字),假设它是从1到n 它的值是Vi,它可以从1变化到10^8 现在,在同一棵树上会有多个相同类型的查询(查询数量最多可达10^5),如下所示: 您将获得node1、node2和一个值P(可以从1到10^8不等) 对于每一种这种类型的查询,您只需找到从node1到node2的路径中的节点数,其值小于p 注意:所有节点之间将有唯一的路径,并且没有两条边属于同一对节点
ans(v,p)
为从根到v
的垂直路径上的答案,以及p
的给定值- 增值
- 删除一个值
- 计算小于
X
[0..n-1]
范围内,并使用二叉索引树(u,v,p)
查询的答案显然是ans(v,p)+ans(u,p)-2*ans(LCA(u,v,p)
O((N+Q)log N)
谢谢你的帮助,伙计:)你也能给我一些这样的问题链接吗?这将非常有帮助……)