别想太复杂了(就n个数装满一个容量为m的箱子)
算法基础题里一模一样的都是大道至简
#include<iostream>
#include<cstring>
using namespace std;
const int N = 50;
int m,n,t;
int f[N][N];
int main(){
cin>>t;
while(t--){
cin>>m>>n;
memset(f,0,sizeof f);
f[0][0]=1;
//f[1][0]=1;
for(int i = 1;i <= n;i ++){
for(int j = 0;j <= m;j ++){
f[i][j] = f[i-1][j];
if(j-i>=0)f[i][j] = f[i-1][j]+f[i][j-i];
}
}
cout<<f[n][m]<<endl;
}
return 0;
}