记 \(S(u,d)\) 表示与 \(u\) 的距离不大于 \(d\) 的点构成的点集。
为了方便后面的讨论,先加入全集的贡献 \(1\)。
当所有点均可选时,考虑如何不重的计算点集,
有些题解写的是: \(\forall u\not=v , S(u,d_u)=S(v,d_v) \rightarrow d_u \not= d_v\),个人感觉是错的
结论应该是:相同的 \(S(u,d)\) 中 \(d\) 最小的 \(u\) 唯一。
证明:
to be continued...
那么可以在相同点集时在最小的 \(d\) 对应的点 \(u\) 计算答案。
考虑 \(u\) 满足的条件,即 \(\forall v,(u,v) \in G , S(u,d) \not= S(v,d-1)\)
记 \(mx1_u\) 表示离 \(u\) 最远的点(最长链),显然有 \(d_u < mx1_u\) (不能覆盖整棵树)
其次,若有 \(S(u,d)=S(v,d-1)\) , 说明 \(u\) 的其它子树的深度 \(\le d-3\)
也就是说,对于任意 \(v\) 都有 \(d \le 1+\max_{w \not= v} mx1_w+1\),当 \(v\) 所在子树即为最深子树时限制最紧,为次长链长度,记为 \(mx2_u\)
最终得到: \(d_u \le \min(mx1_u-1,mx2_u+1)\)
现在考虑部分点不可选,我们仍在 \(d\) 最小的点计算答案(即使 \(u\) 不可选)
标签:le,AGC008F,mx2,mx1,Black,Radius,点集 From: https://www.cnblogs.com/chihik/p/agc008f.html