图论:LCA
文章平均质量分 92
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #362 (Div. 2) C. Lorenzo Von Matterhorn LCA(最近公共祖先)
LCA(最近公共祖先) 在有根树中,找出某两个结点u和v最近的公共祖先(或者说,离树根最远的公共祖先)。 类似于这样来访问 ...... 每次修改的时候直接修改就行 1e18 -> 2^63次所以每次 2*63*q == 1e5 复杂度 O(2*63*n) 此外对于 map<pair<LL, LL>, LL> mpt;//map tree 和 map<LL, map<LL, LL> > mpt;//map tree 前面用 Codeforces上的数据做了测试, 这两种写法时间上是差不多的, 然而在空间原创 2016-08-23 23:29:01 · 1256 阅读 · 1 评论 -
HDU - 6203 ping ping ping LCA倍增算法+dfs序+线段树
题意:给出一颗以0为根有n+1个节点的树,给出p个条件,每个条件表示u,v之间有一个坏的节点,根据这p个条件求出树上至少有多少坏点。 LCA+dfs序+线段树 先跑出dfs序,并对LCA进行预处理。 然后把每组条件按照u,v的LCA为第一优先级丢到优先队列里, 且对于dfs序有个性质,如果P是U的祖先,则 p1[P] <= p1[U] <= p2[U] <= p2[P], 故每次对于每个LCA(u,v),u,v : 先判断 u,v是否存在被标记的祖先,如果都没有说明需要新标记一个点为坏点,即把LCA(u,v原创 2017-10-16 15:37:44 · 880 阅读 · 0 评论