LCA
文章平均质量分 76
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
poj1330LCA问题
裸的求最近公共祖先问题,其中poj另一个同类型的题目输入操作相当变态无聊,就拿这道题备用模板吧。 思路:先是一遍从根节点的深度优先搜索,记录些有用的信息(感觉描述起来好麻烦,不展开了,看了以下核心思想,再画画图就能看出来)。然后对信息进行一遍RMQ预处理(Nlog(N)的复杂度)。然后剩下的就是O(1)复杂度的访问随意两点的公共祖先了。 先定义一个访问顺序的概念:每个节点的访问顺序是指第一次访原创 2014-01-16 16:38:51 · 555 阅读 · 0 评论 -
poj 1986(离线查询点对最近公共祖先)
题意:给一棵树,查询一些点对的距离 解法:随便找一个点建立有根树,然后转化为求点对最近公共祖先问题。两点的距离等于他们与最近祖先的距离和。查询的方法是dfs+并查集离线查询。思想是,dfs过的为回溯的点的parent全部指向自己本身,vis标记为true。回溯之后的点parent指向自己的父亲。然后dfs每进入一个点,就处理这个点相关的查询,如果其中某个查询另一个点v的vis为true,原创 2015-12-21 11:19:51 · 879 阅读 · 0 评论