码迷,mamicode.com
首页 >  
搜索关键字:lca    ( 2392个结果
HDU 5266 bc# 43 LCA+跳表
学了一发LCA的倍增算法+跳表维护。先说说LCA倍增算法,思路是fa[i][j]求的是i结点的2^j倍的祖先,其中2^0就是父结点了。所以可以递推fa[i][j]=fa[fa[i][j-1]][j-1]。当求LCA时,设深度u>v,则先倍增把u提到v的同等深度,若u==v,lca就是u,否则,两点同...
分类:Windows程序   时间:2015-06-08 11:10:10    阅读次数:152
BC ROUND 43# 03 HDU 5266
弱啊弱啊,我用了扩展指令,然后大牛告诉我,只对VC++有用,对G++没用的。。shit,三题就这样没了。方法是使用ST在线算法,O(1)查询,然后用线段树维护。。呃感觉这个好慢。看了大斌神的是用LCA倍增+维护一个表 ,得学习一下。。。先贴弱的代码:#include #include #includ...
分类:其他好文   时间:2015-06-07 23:09:23    阅读次数:153
bzoj2791
每个顶点有且仅有一条出边是什么意思呢类似一棵树,树上的边都是由儿子指向父亲的,并且这个东西带着一个环也就是一个个有向环套有向树……这题还是比较简单的,把环作为根然后类似lca做即可,注意细节的panding 1 type node=record 2 po,next:longint;...
分类:其他好文   时间:2015-06-04 20:52:15    阅读次数:158
BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了..----------------------------------------------------------------------------#include#include#include#include#...
分类:其他好文   时间:2015-06-03 13:23:59    阅读次数:99
树链剖分学习
解决的问题 对于给出的树上两点求之间的最值或者更新操作变为logn。其他方法 Tarjan求LCA的复杂度为 O(N+Q)所以不断更新复杂度太高。本质: 就是将树划分为不重合的多条链每条链都有一个线段树中的编号(可类比dfs序转换线段树的想法)+线段树。在求的过程中根据重链不断逼近再用线段树维护即可。 入门文章 练习题目一般有对点建树和对边建树两种方案,看题目要求。对第几条边进行操作这种情况...
分类:其他好文   时间:2015-06-03 09:50:09    阅读次数:129
倍增LCA
#include#include#include#includeusing namespace std;const int M = 200005;struct Edge{ int v, next;} edge[M q; q.push(1); memset(vis, 0, size...
分类:其他好文   时间:2015-05-29 09:49:28    阅读次数:95
[PA2014]Fiolki 解题报告
这道题是delayyy拿来当例题给我们讲的,他讲得启发式合并,以外向边与点数的和为关键字(因为这是我们一次合并需要的代价),可以做到O(m+(n+k)log(n+k))O(m+(n+k)log(n+k)) 但是。。显然这是一棵树嘛,一棵树的话你直接求LCA就好了,求LCA可以Tarjan做到O(n)O(n),从哪棵子树上来的可以在ufs里维护一下,然后把所有的点对按照询问给出的顺序插入就可以代替排...
分类:其他好文   时间:2015-05-26 09:14:53    阅读次数:118
【Ahoi2008】【lca】【bzoj1787】Meet 紧急集合
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1787 题解: 求出三个点两两之间的lca会发现有两个是一样的,然后我们选那个不一样的就好了。 #include #include #include #include using namespace std; struct use{ int st,en; }b[5000001];...
分类:其他好文   时间:2015-05-25 22:39:25    阅读次数:130
POJ 题目1986 Distance Queries(LCA 离线)
Distance Queries Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 10142   Accepted: 3575 Case Time Limit: 1000MS Description Farmer John's cows refused to ...
分类:其他好文   时间:2015-05-25 22:34:49    阅读次数:160
LCA的五种解法
标准求法//O(nlogn)-O(logn)#include#include using namespace std;const int maxn=100010;int first[maxn],next[maxn*2],to[maxn*2],dis[maxn*2];int n,m;void AddE...
分类:其他好文   时间:2015-05-22 18:58:45    阅读次数:194
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!