[题目解析]小球分箱
小球分箱
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
有n个相同的小球要分到3个相同箱子中,允许空箱,分法不能重复,如:n=4时,2、1、1和1、2、1这两种分法重复。问:共有多少种分法?
输入
n(n<=10000)
输出
分法总数
样例输入
4
样例输出
4
【思路】
这道题目我做了很久,但是到最后时,我发现从一开始我就看错了题目,我一开始理解为球不同盒同可为空,但是到最后发现是球同盒同可为空。这时我才意识到原来一直做的都是错的!!!!(心态崩了)
知道了基本的以后,我开始研究,我们来看解释:
Pm(N+m)这就是我们的公式啦,这个公式表示部分数为m的N-分拆的个数,m是P的下标,但是很多人就发现了,我这个解释里没有m的解释啊!嘿嘿,m为什么要加进去呢?我们需要保证盒为空啊,朋友们!!!
好,讲到这里基本的就解释完了,我们来看代码👇
(警示:诚信做题,禁止抄袭,有问题不懂请联系作者,自己抄袭题解对于我们的信息学学习毫无意义,只是在自己骗自己罢了。)
#include<bits/stdc++.h>
using namespace std;
int f(int n,int m){
if(m==1||n==0){
return 1;
}
if(m>n){
return f(n,n);
}
return f(n,m-1)+f(n-m,m);
}
int main()
{
int n,m=3;
cin>>n;
cout<<f(n,m);
}
作者:zswagnziye
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!