码迷,mamicode.com
首页 >  
搜索关键字:lca    ( 2392个结果
hiho一下 第十五周——最近公共祖先·二(Trajan,离线LCA)
题目连接http://hihocoder.com/problemset/problem/1067题目大意就是一棵树求任意两个节点的最近公共祖先。算法描述在题目的提示里面有比较详细的解释。这里就不多说了。这种算法的时间复杂度是O(n+q)。 在算法的实现上也有一些技巧,在参考了一些代码后写了一个比较精简的Trajan_LAC算法。#include using name...
分类:其他好文   时间:2015-03-09 14:30:48    阅读次数:132
【树链剖分】【分块】【最近公共祖先】【块状树】bzoj1984 月下“毛景树”
裸题,但是因为权在边上,所以要先把边权放到这条边的子节点上,然后进行链更新/查询的时候不能更新/查询其lca。#include#include#includeusing namespace std;#define N 100001#define BN 320#define INF 214748364...
分类:其他好文   时间:2015-03-08 18:46:58    阅读次数:460
【LCA】Tarjan离线算法(并查集+dfs)模板
vector Q[N];int Find(int x) { if(x != fa[x]) return fa[x] = Find(fa[x]); return x; }void Union(int x, int y) { int fx = Find(x), fy = Find(y); if(fy != fx) fa[fy] = fx; }void dfs(...
分类:编程语言   时间:2015-03-07 14:09:36    阅读次数:174
【LCA|Tarjan】POJ-1330 Nearest Common Ancestors
T组数据,每组数据给出N个点和N-1条边,每条边先给出父结点,最后一行查询一对结点,输出它们的最近公共祖先。...
分类:其他好文   时间:2015-03-07 14:08:58    阅读次数:169
【BZOJ2815】【ZJOI2012】灾难 阿米巴和小强题 动态倍增LCA 灾难树
题解: 我们构建一颗灾难树,使得一个节点的任意一个祖先灭绝,则其会灭绝。 则可以按照拓扑序扫每个节点,然后加入到灾难树中时只需要把它的父亲赋成它所有食物的LCA就好了。 我们可以动态处理每个节点的倍增lca数组fi,jf_{i,j}表示i的第(1j)(1高祖先。 代码: #include #include #include #include #include #defi...
分类:其他好文   时间:2015-03-06 20:48:12    阅读次数:185
Codefources 519E. A and B and Lecture Rooms LCA
简单LCA: 求树上距离给定两个点a,b距离相等的点有多少个 先预处理出每个节点的孩子个数sum[x],求出a,b的LCA,根据深度就可以知道两个点的距离,距离为偶数的有解....  根据lca在a,b之间的位置不同分情况讨论: 设a与lca距离为 ha , b与lca距离为 hb  1:lca在a,b正中间既a,b分别属于lca的两个子树中, 结果为: n-sum[ a往上距离lca ...
分类:其他好文   时间:2015-03-06 06:20:44    阅读次数:277
BZOJ 2815 ZJOI 2012 灾难 动态倍增LCA
题目背景 阿米巴是小强的好朋友。 题目大意给出一个食物链(拓扑图),定义一个生物所有的食物都灭绝了之后他自己也灭绝了。定义每种生物灭绝之后跟随着它灭绝的生物个数为这个生物的灾难值。求所有生物的灾难值。思路看题帽知出题人系列。 fhq的题大家也知道,一般都是不可做的。于是我就去看了他的题解,发现这个题还是可做的。 定义一种灭绝树,对于任意一个子树,若这个子树的根节点灭绝,那么子树中的所有点都...
分类:其他好文   时间:2015-03-04 16:59:04    阅读次数:235
Codeforces 519E A and B and Lecture Rooms LCA
题目链接:点击打开链接 题意: 给定n个点的树。 下面n-1行给出树 Q个询问。 每次询问 (u,v)问树上有多少个点到u点距离=到v点距离 思路: 首先这两个点的距离必须是偶数,若为奇数答案就是0 然后用lca找到中间节点即可。 trick : u==v ans = n #include"cstdio" #include"iostream" #include"queue" #...
分类:其他好文   时间:2015-03-03 23:42:20    阅读次数:153
BZOJ 2791 Poi2012 Rendezvous 倍增LCA
题目大意:给定一棵内向森林,多次给定两个点a和b,求点对(x,y)满足: 1.从a出发走x步和从b出发走y步会到达同一个点 2.在1的基础上如果有多解,那么要求max(x,y)最小 3.在1和2的基础上如果有多解,那么要求min(x,y)最小 4.如果在1、2、3的基础上仍有多解,那么要求x>=y 因此那个x>=y是用来省掉SPJ的,不是题目要求- - 容易发现: 如果a和b不在同一...
分类:其他好文   时间:2015-03-03 20:47:42    阅读次数:300
Codeforces Round #294 Div2 E(A and B and Lecture Rooms)
给一棵树,含有N个节点,N?1条边。进行M次查询,每次给定两个节点x,y,问树上有多少个节点到x,y的距离相同。...
分类:其他好文   时间:2015-03-02 14:53:01    阅读次数:169
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!