以 1 号点为根,求出从 1 号点到所有点的距离,如果距离小于等于 k ,则将这个点加入到答案中。
此外,对于一个叶子节点,如果其距离 d 小于 k ,则说明还可以在这个叶子下添加 k−d 个点,这些点成一条链。
所以,在进行以 1 号点为根的树的遍历的过程中,即可获得从 1 号点到每个点的距离,同时进行判断和答案计算即可。
时间复杂度:O(n)
一位族谱学者正在研究一个有 n 个成员的古老家族,成员编号为 1 到 n。家族的血缘关系构成一棵树,其中 1 号成员是整个家族的始祖。
定义某位成员的辈分:始祖的辈分为 0,从始祖沿血缘关系向下,每经过一代辈分增加 1。如果一位成员没有任何后代(即没有孩子),则称其为“末端成员”。
这位学者拥有修订族谱的权利:她可以多次选择一位非始祖的末端成员,为其虚构一个孩子(新成员编号随意)。新加入的孩子立即成为新的末端成员。
经过任意次操作后,她想知道辈分不超过 k 的家族成员数量最多可以达到多少。
约束:
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.