LCA
反向爆零直至AK
从零开始的编程生活,枯燥却紧张
展开
-
Closest Common Ancestors(LCA求最短路模板题)
题目链接:Closest Common Ancestors题目大意:给你一棵树,给你多个点对,问:最近公共祖先相同的点对的个数,根据祖先按从小到大输出,并输出个数。思路: LCA的模板题。代码:#include#include#include#include#includeusing namespace std;const int maxn=1e3+9;int原创 2018-01-24 20:22:32 · 246 阅读 · 1 评论 -
Nearest Common Ancestors(求最近公共祖先模板)
题目链接:Nearest Common Ancestors题目大意:给你n-1条边,最后是一个询问(x,y)的最近公共祖先。思路:模板题,建立无向图,因为只有一个询问,就直接找到返回就行了。代码:#include#include#includeusing namespace std;const int maxn=1e4+9;int firs[maxn],vis[ma原创 2018-01-24 20:31:26 · 189 阅读 · 0 评论 -
Distance Queries(LCA求最短路径)
题目链接:Distance Queries题目大意:给你n个点,m条边,u,v,w那个字母没有什么意义,要建立无向图,有q次询问。思路: 求最短路径的模板。代码:#include#includeconst int maxn=1e6+9;int first1[maxn],first2[maxn],vis[maxn],fath[maxn],dis[maxn],ans[m原创 2018-01-24 20:35:48 · 976 阅读 · 0 评论 -
Factory(LCA的离线算法)
题目链接:Factory题目大意:中文题。思路:其实就是求LCA的离线算法的模板,只不过多了几步。 因为图是城市与城市之间的图,而询问的是公司与公司之间的最短距离。 所以要在建立两个关系,他给你了每个公司在哪个城市有分公司,所以一个是分公司与城市,一个是城市与分公司。LCA查找的是后从城市到公司,公司到询问的另一个公司,另一个公司到相应的分公司,遍历所有的情况即可。代码:#原创 2018-01-25 17:09:08 · 158 阅读 · 0 评论 -
LCA的讲解与例题
有一个超级好的LCA的讲解非常好:LCA入门的博客可以看那个,接下来我也会将一下。 下面是相关的例题: 目前我就学了两类题: 1。求两点的最近公共祖先。例题:Nearest Common Ancestors,Closest Common Ancestors。 2。求两点在树上的最短路。例题:Connections between cities,How far away ?,CD操作,D原创 2018-01-24 20:09:35 · 389 阅读 · 0 评论