分类: 贪心, 树结构
题意: n个结点,以最小生成树方式连接,有一个结点是服务器,可以服务k以内的叶子结点,求还需要放几个服务器,覆盖所有叶子结点
输入: 数据组数T,结点数n,距离k, n-1行表示连接关系
输出: 还需要放置的最小服务器数
解法:
第一步, 构建有根树,获得结点的深度值和叶子结点
从最底层的叶子结点,自底向上贪心解决覆盖问题
注意,没加入一个服务器,dfs距离k以内的所有结点探测是否要覆盖叶子结点,但不是只遍历一次,注意算法的思路
注意是否需要考虑边界条件和特殊情况
#include #include #include