蒟蒻在本题求LCA中,运用了如下代码:
while(dep[x]!=dep[y]) x=fa[x][l[dep[y]-dep[x]]];
获得了40分TLE的好成绩。后来检查出了问题,发现在“爬”的过程中,第二行的dep[x]与dep[y]写反。更改过后是这样的:
while(dep[x]!=dep[y]) x=fa[x][l[dep[x]-dep[y]]];
所以为什么测评结果是TLE,而不是RE?原始代码应该会出现数组下标负数的情况,为什么程序可以运行,而只是时间复杂度大大上升?求助!