原题链接:https://www.acwing.com/activity/content/problem/content/1008/
题目分析
思路:把1,2,3, … n分别看做n个物体的体积,这n个物体均无使用次数限制,问恰好能装满总体积为n的背包的总方案数(完全背包问题:dp求最大价值;本题:f是可能方案数)
初始化 f[i][0] = 1,体积为0自然不用装物品,也算一种方案
f[ i ][ j ]表示前i个整数(1,2…,i)恰好拼成j的方案数,可以分为取或者不取i,可以写成三重循环
但是注意到:
所以也可以写两层循环
f[ i ][ j ] = f[i - 1][ j ] + f[ i ][ j - i ]
注意每次计算后对mod取模防止溢出