最小公共祖先(LCA)问题解析.pptVIP

  • 5
  • 0
  • 约 45页
  • 2016-12-21 发布于湖北
  • 举报
最小公共祖先(LCA)问题poj1330,1986,1470--fuyuchang(cc)internet大纲定义将LCA问题转化为RMQ问题RMQ的一般解法±1RMQ问题的快速解法RMQ的快速解法LCA–最小公共祖先在树T中,结点u和v的最小公共祖先是它们共有的、离根结点最远的那个祖先结点。LCAT(u,v)uvRMQ–区间最小询问询问RMQA(i,j)返回的是数组A[i..j]中最小元素的下标。RMQA(i,j)0163413719101212RMQA(3,7)=4A[0]A[2]A[1]A[9]A[3]A[4]A[5]A[6]A[7]A[8]时间复杂度标记预处理时间单个询问处理时间LCA–一般的算法对任意一对结点,分别找出它们到树根的路径,然后在这两条路经中找第一个公共的结点。复杂度=LCA普通算法的图将LCA转化为RMQ如果有一个复杂度为的RMQ解法,那么就存在一个复杂度为的LCA解法。变形–根据树T构造3个数组1.E[1..2n-1]:存放从树根开始的Euler遍历所经过的结点编号。2.L[1..2n-1]:L[i]存放E[i]结点在树T中的深度。3.P[1..n]:R[i]表示结点i在数组E中第一次出现的下标。8例012369547下标0123456789101112131415161718Eu:0121310405657875950id:012121010121232

文档评论(0)

1亿VIP精品文档

相关文档