摘要: LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 阅读全文
posted @ 2017-03-24 20:56 Angel_Kitty 阅读(7767) 评论(6) 推荐(7) 编辑
摘要: RMQ (Range Minimum/Maximum Query)问题是指: 对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在[i,j]里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题主要方法及复杂度(处理复杂度和查询复杂度)如下:1.朴素(即搜索 阅读全文
posted @ 2017-03-24 20:48 Angel_Kitty 阅读(1977) 评论(5) 推荐(1) 编辑
摘要: 分治算法在树的路径问题中的应用 一、树的分治算法 树的分治算法是分治思想在树型结构上的体现。 任一个具有n个节点的连通路,它的任何一棵树的树枝数为n-1 分治:除去树中的某些对象,使原树被分解成若干互不相交的部分。 分治算法分为两种:一种是点的分治,一种是边的分治 1.基于点的分治 1.选取一个点将 阅读全文
posted @ 2017-03-24 20:24 Angel_Kitty 阅读(786) 评论(0) 推荐(0) 编辑