- 博客(2)
- 收藏
- 关注
原创 倍增/树链剖分解决LCA问题
已知一棵树,给出u,v两点,求它们的最近公共祖先,这就是LCA问题(Least Common Ancestors)。 如上图,LCA(15,7)=6,LCA(11,3)=10,LCA(13,15)=8... 先从简单的方法入手。不妨设v的深度比u的大,也就是v比u离根节点更远一些。首先要将v提到与u同一深度,然后它们再一起上提,直到相遇,即找到了LCA为止。 代码如
2017-02-27 20:52:16
1716
4
原创 基于倍增稀疏表/线段树的区间最值查询(RMQ)问题
RMQ(Range Minimum/Maximum Query)区间最值查询,即给出长度为n的数组A,以及m组询问s、t(s<=t<=n),返回区间[s,t]中的最值。 用这篇替换掉了以前那篇Naive、漏洞百出的旧博文。 ·O(mn)的暴力做法 int solve(int s, int t){ int ans=-INF; for(int i=s;i<=t;...
2017-02-27 20:48:44
447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人