杭电acm2106用我这个方法为什么不对啊要不是wa,就是超时
发布网友
发布时间:2022-04-26 09:38
我来回答
共1个回答
热心网友
时间:2022-06-26 22:08
你的递归扩展起来很可怕。
因为有很多是重复算的,例如:
F(5)
/ \
F(4) F(3)
/ \
F(3) F(2)
在这里F(3)就要算两遍,这题需要把这种情况给解决,也就是说可以将递归改成递推,也可以用记忆化搜索的方法解决,也就是算第一遍mf(a,n)的时候就把这个值记住,下一次遇到这个值就直接拿不需要再进行递归计算,这样就可以把时间复杂度降低。