“n个球放到m个盒子”问题整理 您所在的位置:网站首页 插板法可以为空 “n个球放到m个盒子”问题整理

“n个球放到m个盒子”问题整理

2023-10-09 01:44| 来源: 网络整理| 查看: 265

n个球放到m个盒子 以8个球放到3个盒子为例 1 球同,盒同,可空 思路一:8个球放到3个盒子

    取球最少盒子取0个球,取球第二少的盒子取[0,4]     取球最少盒子取1个球,取球第二少的盒子取[1,3]     取球最少盒子取2个球,取球第二少的盒子取[2,3]     一共5+3+2=10种 

    类似于 整数拆分 包含0  非递减序    8 = 0 + 0 + 8        + 1 + 7        + 2 + 6        + 3 + 5    8 = 1 + 1 + 6        + 2 + 5        + 3 + 4    8 = 2 + 2 + 4        + 3 + 3

思路二:

    有n个球,和m个盒子,我可以选择在所有盒子里面都放上1个球,也可以不选择这个操作,    如果选择了这个操作,那么就从dp[n-m][m]转移过来    如果没有选择这个操作,那么就从dp[n][m-1]转移过来

    dp[n][m]:n个相同的球放入m个相同的盒子的放法

    边界条件:        k个球放入一个盒子只有一种放法:dp[k][1] = 1        一个球放入k个盒子只有一种放法:dp[1][k]=1        没有球只有一种放法(都不放):dp[0][k]=1    状态转移方程:        dp[n][m] = dp[n][m-1] + dp[n-m][m] ,    n>=m        dp[n][m] = dp[n][m-1] ,    n=0      k个不同球放入0个盒子,dp[k][0]=0, k>=1      n个不同球放入m个盒子,球不够,盒子会空,dp[n][m]=0, n



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有