膜网上题解。。。♂啊。然后看懂后写的很快。。。从早上调到中午。。。晚上回来继续。。。后重新打了一遍。。。似乎是因为ans在+的时候没有%mod的原因?应该是吧。便A了。。累垮。。。顽强的调试精神可嘉可贺啊~~~ 3626: [LNOI2014]LCA Description 给出一个n个节点的有根树 ...
分类:
其他好文 时间:
2016-07-14 01:22:53
阅读次数:
247
Network Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 903 Accepted Submission(s): 379 Problem ...
分类:
其他好文 时间:
2016-07-13 19:46:47
阅读次数:
167
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia ...
分类:
编程语言 时间:
2016-07-13 11:52:59
阅读次数:
193
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8857 Accepted Submis ...
分类:
编程语言 时间:
2016-07-13 11:41:04
阅读次数:
257
对于这一类的问题有2中解决方法。第一种就是tarjan的离线算法,还有一中是基于ST算法的在线算法。复杂度都是O(n); 先介绍在线算法: 1) dfs: 对于图所示的树,我们从根节点1开始dfs,按照先序访问(不算完全的先序),那么它访问顺序就是1 -> 2 -> 4 -> 2 -> 5 -> 7 ...
分类:
编程语言 时间:
2016-07-13 10:28:51
阅读次数:
139
看到这题我就伤心,当初想到了正解却因为各种sb原因没有写…… 好吧,其实我的正解是比较挫的…… 大家似乎都用了后缀数组,我用了后缀自动机(后缀树) 其实SAM是很好想得,用SAM建出后缀树后 我们考虑树上每个节点对答案的贡献,0相似就不必说了 考虑到任意两个后缀的LCP即这两个后缀所在节点的LCA的 ...
分类:
其他好文 时间:
2016-07-10 21:54:51
阅读次数:
292
马克飞象莫名其妙无法同步到印象笔记,现在这里保存一下吧。Training Day2@(ACM集训)A.How far away ?(Tarjan LCA)题意:无向图,给定边及边权重,任意两点之间都有一条唯一的道路,道路上每个点只能出现一次。给定询问,求询问的结点之间的距离。分析:路上每个点只能出现一次,可以转化成有根树,问题也即为求最近公共祖先问题~~ 这里每条边加上了距离,求出LCA后,用u、v...
分类:
其他好文 时间:
2016-07-10 18:43:57
阅读次数:
205
题意:给定一棵树,询问两个节点的最近公共祖先。 输入:第一行T,表示测试组数。 每组测试数据包含一个n,表示节点数目,下面n-1行是连接的边,最后一行是询问 输出:共T行,代表每组的测试结果 /* 倍增LCA 注意这是树,所以边是单向的,深搜的时候从根节点开始搜 */ #include<cstdio ...
分类:
其他好文 时间:
2016-07-09 20:53:30
阅读次数:
174
倍增算法可以在线求树上两个点的LCA,时间复杂度为nlogn 预处理:通过dfs遍历,记录每个节点到根节点的距离dist[u],深度d[u] init()求出树上每个节点u的2^i祖先p[u][i] 求最近公共祖先,根据两个节点的的深度,如不同,向上调整深度大的节点,使得两个节点在同一层上,如果正好 ...
分类:
编程语言 时间:
2016-07-09 13:31:49
阅读次数:
171
Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the two nodes. The lowest common ancestor is the node with larg ...
分类:
其他好文 时间:
2016-07-08 06:44:58
阅读次数:
133