题意简述: 有一个 个节点的树,点编号为 。有 次询问。每次询问给出一个子集 ,令 。其中 表示点 与点 的距离。求 。 做法简述 因为 ,所以 。暴力求的话,复杂度是平方的。我们需要优化。从等式的右边的意思出发。我们需要求的就是某个点 ,它到点集中所有点的最大距离最小。因为要求最小,所以这个 点必须也要在点集 中。所以我们可以换个角度考虑。既然 都在点集 中了,我们可以直接求 的直径即可,所以 点的深度要尽可能地大。求法不再赘述(前人之述备矣),代码里会有一些注释。时间复杂度 ,可以通过。 代码 #include <bits/stdc++.h> usin...