思路来源
钱神
钱神如是说(样例n=4 d=1):
对于高度为5,满足d=1的树来说,只需要左子树高度4,右子树高度3
就可以满足d=1
右子树只要满足右左子树高度3且d=1,右右子树高度2且d=1
然后递归的去求
最后发现其实可以递推。
题解(转移方程)
其中i是树的节点数,a[i][d]对应的是树的总结点个数,
这是在深度相差不超过d之下的最小节点个数。
其实预处理一下所有的d也可以,毕竟60*60。
a[i][d]=1+a[i-1][d]+a[i-1-d][d];(i>=1+d)
a[i][d]=i;(i<=d)
一个简单dp,然而自己太菜了。
心得
很迷的一道题,
dfs记忆化搜索会WA样例。
循环就过了,gg。
代码①(WA代码)
#include
#include
#include
#include
#include
#include
#include
#include
代码②(AC代码)
#include
#include
#include
#include
#include
#include
#include
#include