n个无区别的物品,将它们划分为不超过m组
1、存在ai=0(就是有的划分中没有物品)
此时{ai}的个数等于 n 的 m – 1 划分。可以这样思考,存在ai=0,说明划分一定不足m组,那么至少可以少分一组同时满足划分数相同。
此时dp[i][j] = dp[i – 1][j] 。
2、不存在ai=0(每个划分中都有物品)
此时{ai}的个数等于{ai – 1}的个数,即 n – m 的 m 划分。理解起来并不难,集合里每个数都减去1,一共减了m个。
此时dp[i][j] = dp[i][j – i]
所以,dp[i][j] = dp[i][j – i] + dp[i – 1][j]。
博客介绍了将n个无区别物品划分为不超过m组的算法。分两种情况讨论,存在ai=0时,{ai}个数等于n的m – 1划分,dp[i][j] = dp[i – 1][j];不存在ai=0时,{ai}个数等于n – m的m划分,dp[i][j] = dp[i][j – i],最终得出dp[i][j] = dp[i][j – i] + dp[i – 1][j]。
694

被折叠的 条评论
为什么被折叠?



