卧薪尝胆,厚积薄发。
      
    
            Catering
        
        
        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
        
      
      ღゝ◡╹)ノ♡
    
          Date: Sat Mar 30 19:06:04 CST 2019
          
          In Category:
          
        
            Timeline
          
            About
          
            Toolbox
          
              Friends