传送门
Sunshine学长去年的互测题orz 然而他给的solution除了点分和bit什么都没说啊。。。 硬着头皮想吧,反正我知道要用bit了。。
如果是树的话点分治+二分或者bit就能搞定 如果是环套树的话怎么办捏 首先考虑不经过环的答案,直接在外向树上点分就行了 然后考虑经过环的答案 假设当前外向树上深度为h的有x个点,那么上一棵外向树的贡献就是x*深度>=k-1-h的点的个数 假设上一个外向树深度为1,2,..的点的个数都加入到bit里,那么就直接在bit里查询就可以了 从这里可以想到用bit来维护然后查询,也就是将当前外向树之前的点都加进去,暴力枚举当前外向树的深度,然后查询 当然两棵外向树的距离是不一样的,所以在加入的过程中还需要根据距离进行相应的差分,实际上就是后一个加入的深度相比实际深度要比前一个小 还有就是因为是一个环,需要展环成链然后做n次 细节比较多。。。 时间复杂度
有一个让我挂挺了的地方,,就是点分治必须每一次更新size,否则找到的重心是不准确的
新闻热点
疑难解答