博主蒟蒻,目前还不会动态dp,所以下面说的是一个并不优秀的暴力,我会补的! 我们考虑按权值从大到小依次点亮每个点,相同权值可以同时点亮,每次点亮后,我们进行一次树形背包. 处理出$f[i][j]$表示i的子树中有j个亮点的方案数,然后就AC了. 有两个小优化,一个是将背包的枚举上限设为min(size[x],K),此处size[x]为子树中点亮的点的的个数. 还有就是我们可以把大于K的dp值都和K合并到一起,因为我们需要的是所有大于等于K的方案数. #include <cstdio> #inc…