一个诡异的完全不知道询问次数的做法。

考虑一条链,我们显然二分。

然后考虑一棵树,显然树深度越小越好做,发现和深度有关,我们长剖!

二分加上长剖,我们每次询问最长链中点,然后根据结果暴力维护就好了。

(维护方法:成功了就只留下询问节点的子树,失败了删掉所有叶子和询问节点子树,加入当前根的父亲。)

(注意:失败的时候如果询问节点父亲只剩一个子树,需要删掉父亲)

虽然诡异但是还是有些道理的,这种做法可以在深度很大的时候一次保证删掉大量节点,在深度很小的时候随便找个地方问也比在叶子上浪费次数强。

实测能 \(80\) 次以内出解。

代码