码迷,mamicode.com
首页 >  
搜索关键字:lca    ( 2392个结果
【BZOJ3572】【Hnoi2014】世界树 虚树
题解: 首先构建虚树,然后在虚树上DP。 过程很简单。 先找出每个虚树节点 ii 旁边最近的询问节点 nearinear_i (因为有一些lca也被加入了虚树所以虚树节点不全是询问节点,呃怕你们不懂,但其实这是废话Qwq。) 然后对于每条链 [l,r][l,r],找出 [nearl,nearr][near_l,near_r] 中点,然后两边随便给一给就好了。。 代码: #inclu...
分类:其他好文   时间:2015-06-15 22:17:07    阅读次数:140
Hdu 2874 Connections between cities
题意:城市道路没有环不一定连通的树求两城市的最短距离 设想一下就是很多小树那好办思路:lca离线算法然后有个技巧就是每次我们tarjan一棵树不是最后树的节点都访问过并且孩子全能找到根嘛那么我们只要做做做做做到全部的城市都访问过了就行了反正你做这颗小树的时候又不会影响到其他树的#include #i...
分类:其他好文   时间:2015-06-14 21:22:33    阅读次数:112
BZOJ 1787: [Ahoi2008]Meet 紧急集合( 树链剖分 )
这道题用 LCA 就可以水过去 , 但是我太弱了 QAQ 倍增写LCA总是写残...于是就写了树链剖分...其实也不难写 , 线段树也不用用到 , 自己YY一下然后搞一搞就过了...速度还挺快的好像= = #9---------------------------------------------...
分类:其他好文   时间:2015-06-14 12:26:36    阅读次数:132
hdu 5266 pog loves szh III 在线lca+线段树区间优化
题目链接:hdu 5266 pog loves szh III思路:因为它查询的是区间上的lca,所以我们需要用在线lca来处理,达到单点查询的复杂度为O(1),所以我们在建立线段树区间查询的时候可以达到O(1*nlgn)的时间复杂度ps:因为栈很容易爆,所以。。。。。你懂的 --》#pragma ...
分类:其他好文   时间:2015-06-14 10:57:08    阅读次数:126
[hdu5266]区间LCA
题意:给一棵树,求节点L,L+1,...R的最近公共祖先思路:先对树dfs一下,从根1出发,经过每条边时记录一下终点和到达这个点的时间截,令r[u]表示到达u这个节点的最早时间截,t[x]表示在时间截x时到达的节点编号,假设对于两个节点u,v,设r[u]#include#include#includ...
分类:其他好文   时间:2015-06-12 20:42:56    阅读次数:104
bzoj 1036: [ZJOI2008]树的统计Count
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1036解:树链剖分裸题,树链剖分基础=线段树+Tarjan求LCA树剖其实就是把树拆成链再组合起来变成线性表,然后用线段树对线性表处理就好了树剖学习推荐博客:http://blog.sina....
分类:其他好文   时间:2015-06-11 06:56:13    阅读次数:157
HDU 5266 pog loves szh III
题意:给出一棵树,1为根节点,求一段区间内所有点的最近公共祖先。解法:用一棵线段树维护区间LCA。LCA是dp做法。dp[i][j]表示点i的第2^j个祖先是谁,转移方程为dp[i][j] = dp[dp[i][j - 1]][j - 1],初始的dp[i][0]可以用一次dfs求得,这样可以用lo...
分类:其他好文   时间:2015-06-09 15:40:44    阅读次数:121
HDU 5266 pog loves szh III ( LCA + SegTree||RMQ )
pog loves szh IIITime Limit: 12000/6000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 470Accepted Submission(s): 97P...
分类:其他好文   时间:2015-06-09 06:06:23    阅读次数:104
HDU5266---pog loves szh III (线段树+LCA)
题意:N个点的有向树, Q次询问, 每次询问区间[L, R]内所有点的LCA。大致做法:线段树每个点保存它的孩子的LCA值, 对于每一次询问只需要 在线段树查询即可。 1 #include 2 using namespace std; 3 const int MAXN = 3e5+10; ...
分类:其他好文   时间:2015-06-08 23:09:00    阅读次数:257
HDU 5266 pog loves szh III (线段树+在线LCA转RMQ)
题目地址:HDU 5266 这题用转RMQ求LCA的方法来做的非常简单,只需要找到l-r区间内的dfs序最大的和最小的就可以,那么用线段树或者RMQ维护一下区间最值就可以了。然后就是找dfs序最大的点和dfs序最小的点的最近公共祖先了。 代码如下:#include #include #include #include ...
分类:其他好文   时间:2015-06-08 14:59:13    阅读次数:133
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!