求助!谜之TLE&WA

P3379 【模板】最近公共祖先(LCA)

dolca 两个 while 中间加一句 if(x==y) return x;
by 小粉兔 @ 2019-02-09 13:48:04


因为 x 和 y 跳到相同深度时,相等了要特判。不相等才进入下一个循环。 还有你这个求一次lca是log方的啊
by 小粉兔 @ 2019-02-09 13:51:48


@[小粉兔](/space/show?uid=10703) oo谢谢! 不过为啥是log方呢,是因为那个从20->0的循环?
by PotatoServer @ 2019-02-10 09:52:36


@[PotatoServer](/space/show?uid=97139) 是啊,其实不需要外面的 while 循环的
by 小粉兔 @ 2019-02-10 15:02:37


@[小粉兔](/space/show?uid=10703) ok我懂了!
by PotatoServer @ 2019-02-13 08:27:55


@[小粉兔](/space/show?uid=10703) while好像是加不加都不影响吧?然后我看题解里的写法好像差不多啊... 应该说是本质上没区别,for循环一次20 -> 0 足以跳到位了,所以while压根没起作用,应该实际上还是log(n)啊?
by PotatoServer @ 2019-02-13 08:33:51


第一个while套for的while去掉,for正序
by 小粉兔 @ 2019-02-13 09:00:35


|