将n个不同的球放到m个相同的袋子里有多少种方案?
对10^9+7取模。
n,m<=1000。
### 怎么来递推呢?
用f[i][j]表示将i个不同的球放到j个相同的袋子,并保证每个袋子里都有球的方案数。
考虑第i个球是不是单独放的。
f[i][j]=f[i-1][j-1]+f[i-1][j]*j。//一个单独放,一起放就乘j因为有j个袋子
答案是f[n][0]+f[n][1]+…+f[n][m]。
时间复杂度O(nm)
探讨了将n个不同球放入m个相同袋中,每个袋子至少有一个球的方案数计算方法。采用动态规划递推公式f[i][j]=f[i-1][j-1]+f[i-1][j]*j进行求解,最终答案为f[n][0]到f[n][m]的累加,时间复杂度O(nm)。
将n个不同的球放到m个相同的袋子里有多少种方案?
对10^9+7取模。
n,m<=1000。
### 怎么来递推呢?
用f[i][j]表示将i个不同的球放到j个相同的袋子,并保证每个袋子里都有球的方案数。
考虑第i个球是不是单独放的。
f[i][j]=f[i-1][j-1]+f[i-1][j]*j。//一个单独放,一起放就乘j因为有j个袋子
答案是f[n][0]+f[n][1]+…+f[n][m]。
时间复杂度O(nm)
转载于:https://www.cnblogs.com/Adventurer-H/p/11241893.html
1404
1450
3050

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