洛谷p1028数的计算 详解
题目如下:
此题你的第一反应是啥
如何用递归呢,看到题目比较明显的递归痕迹。此时需要用到记忆化搜索
记忆化核心是高效运算,保障不重复计算
看下方,跟着我的代码走:
而 ans +=dfs(i) 为何 注意,此处要视野放大,不要局限于递归的地方,总体循环的目的是求此时给的数字m时,有多少合法数列的数量,即结果,
那么也即是自己本身这个数也算一个,也加了上去,所以 ans+= ,之后加的是各个小于等于 m/2,大于等于1,符合要求范围内的各个相应数字对应的他自己拥有的合法数量,说人话是 自己有的,有,满足自己小弟要求的小弟,也都是我的,都通通把小弟各自的都加起来给我