题目:
思路:很大一部分和放盘子问题一样,就是分类讨论,然后特别的地方在于第一次使用f函数时用的是f(n-k,k)而不是f(n,k)
因为题目说了不能为空,要填满,所以就先填满那层底,每一个数都先让他为1
#includeusing namespace std;int f(int n,int k){ if(k==0) return 0; if(n==0||n==1) return 1; if(n>=k) return f(n-k,k)+f(n,k-1); else return f(n,n);}int main(){ std::ios::sync_with_stdio(false); int n,k; cin>>n>>k; cout< <