整数划分
区间dp经典题
AC代码:
1 |
|
相当于是完全背包问题,重要的还是需要耐心推导表达式。
还有另一种思路:f[i][j]
表示的是总和是i,恰好表示成j个数的方案。
那么可以把f[i][j]
的集合划分成两个部分,一个是其中任意一个数为1的,一个是其中任意一一个数都严格大于1的。
那么任意一个数都大于1的集合正好与f[i-1][j-1]
是一一对应的。
任意一个数都严格大于1的集合与f[i-j][j]
也是一一对应的。
因此有状态转移式为:f[i][j]=f[i-1][j-1]+f[i-j][j]
。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.