小球放盒子(2023.3) 有N个相同的球,M个不同的盒子,每个盒子最多放K个球 请计算将这N个球全部放入盒子中的方案数模1000007后的结果 时间限制:10000 内存限制:131072 输入 三个正整数,依次为N,M,K 输出 输出方案数模1000007后的结果 样例输入 4 2 3 样例输出 3 提示 总共有3种方案,依次为 { 3 , 1 },{ 2 , 2 },{ 1 , 3 }。 对于100%的数据, N,M ≤ 5000
正确答案:参考程序(C++):N相同球放M不同盒,每盒最多K个,方案数模1000007。dp[i][j]=放i个球用j盒的方案,dp[i][j]=sum dp[i-t][j-1](0≤t≤K)。样例N=4,M=2,K=3→3。核心:背包式DP计数。
试卷来源:202303 青少年等级考试C/C++真题四级