一个想法
就是用一个bitset记录路径
求最近公共祖先深度直接异或然后从左数0
在这个实现中,我设定的是root指向二叉树的最顶上的节点,root和二叉树“独立”(虽然叫root),然后root深度为1,根节点为2,对于两个串001和000,异或得到001,那么最近公共祖先深度就是2
按理来说,这个初始速度均摊是O(1),我查阅的LCA每个节点是log(深度)次,肯定大于O(1),查询操作,LCA会使用倍增,这是一个大杀器,但是如果我们对于标题"一定规模"呢?这种情况为O(1)(当深度小于等于64时)这无疑是更快的
优点:初始化快,一定规模下总体都快
缺点:占的空间多一点,需要提前规定深度,O并不是O(1),而是O(bitset长度/64)
如果您肯帮忙的话,万分感谢
(如果能找到在此时间:2024.7.28之前的"撞车"论文/明确要进行发表/进入深入讨论的信息,并留言,那么再次感谢!!!)