卧薪尝胆,厚积薄发。
Catering
Date: Sat Mar 30 19:06:04 CST 2019 In Category: NoCategory

Description:

给定一棵树,每次询问给定 $k$ 和 $len$ ,问有多少种选择 $k$ 个点的方案,满足任意两点间的距离都不超过 $len$ 。
$1\leqslant n\leqslant 100,1\leqslant m\leqslant 10^5$

Solution:

设 $f[i][j][u][v]$ 表示考虑了前 $i$ 个点,已经选了 $j$ 个点,目前的最远点对为 $(u,v)$ ,那么每次新加一个点 $c$ 最远点对一定是 $(u,v),(u,c),(v,c)$ 之一,那么我们就可以 $O(1)$ 转移,预处理的时间复杂度是 $O(n^4)$ 的( $O(1)$ 求 $LCA$ ),然后把所有点对排序,那么对于一次询问合法的是一个前缀,于是对于每个 $j$ 维护前缀和,每次询问二分即可。

Code:


没有代码
In tag: DP-DP
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡