LCA
disPlayLzy_
梦在前方,路在脚下
展开
-
Luogu P2633 Count on a tree___主席树+lca
题目大意: 分析: 历史版本为父亲,现在版本为儿子,从树根开始建立主席树 对于u,vu,vu,v间路径的信息, 可以转换成 uuu版本的树信息+vvv版本的树信息-lca(u,v)lca(u,v)lca(u,v)版本的树信息-lca(u,v)父亲lca(u,v)父亲lca(u,v)父亲版本的树信息 第k小就直接计算即可 代码: #include<iostream> #include<cstdio> #include<cmath> #include<queue&g原创 2021-08-09 18:37:16 · 98 阅读 · 0 评论 -
POJ P1330 Nearest Common Ancestors
题目大意:给出T组数据,每组有N个点,N-1条边,构成一颗树,给出一对点[x,y],问x和y的最近公共祖先是多少。2<=N<=10,000题解:这题是LCA的模版题吧。。 x,y的最近公共祖先,你可以这么想,x到根节点的路径跟y到根节点的路径的第一个交点z就是了。 tarjan离线做法,因为可以在一次遍历中把查询解决,所以时间复杂度为O(N+Q) tarjan解释这种东西想了很久觉得,还是意会原创 2017-12-28 20:38:05 · 221 阅读 · 0 评论 -
Jzoj P3325 压力___求点双分量+LCA+树上差分
题目大意: 世界上有NNN个网络设备,他们之间有MMM个双向的链接,这个世界是连通的。 有QQQ个数据包要从一个网络设备发送到另一个网络设备。 某些数据包无论走什么路径都不可避免的要通过某些网络设备。 你要计算:对每个网络设备,必须通过(包括起点、终点)他的数据包有多少个? N≤100000,M,Q≤200000N≤100000,M,Q≤200000N≤100000,M,Q≤200000...原创 2018-07-08 21:39:15 · 268 阅读 · 0 评论 -
Jzoj P6276 树___线段树+扫描线+lca
题目大意: 有一棵n个节点的无根树,给出其中的m对点对<x,y>。问有多少条树上的简单路径<u,v>满足该路径上不存在任何一对给出的点对<x,y>。 这里我们认为路径<u,v>和<v,u>是相同的。并且对于题目中给出的点对<x,y>满足x!=y,对于你要计数的路径<u,v>满足u!=v(即单点不算答案)。 分析:...原创 2019-08-07 19:49:35 · 213 阅读 · 0 评论