1
# Runtime: 2359 ms (Top 39.76%) | Memory: 44.3 MB (Top 93.27%)2
from math import ceil, log29
def __init__(self, n: int, parent: List[int]):10
self.parent = [[NO_PARENT] * n for _ in range(ceil(log2(n + 1)))]11
self.__initialize(parent)13
def __initialize(self, parent: List[int]):14
self.parent[0], prev = parent, parent16
for jump_pow in range(1, len(self.parent)):17
cur = self.parent[jump_pow]19
for i, p in enumerate(prev):25
def getKthAncestor(self, node: int, k: int) -> int:26
jump_pow = self.jump_pow28
while k > 0 and node != NO_PARENT:32
node = self.parent[jump_pow][node]40
def jump_pow(self) -> int:41
return len(self.parent) - 1