```cpp
#include <bits/stdc++.h>
using namespace std;
int a[100][100];
int dg(int n,int m)
{
if(n==0||m==1) return 1;
if(n<0||m<1) return 0;
if(a[n][m]>0) return a[n][m];
return a[n][m]=dg(n,m-1)+dg(n-m,m);
}
int main()
{
int t;cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
memset(a,0,sizeof(a));
cout<<dg(n,m)<<endl;
}
return 0;
}
```
by CHClFNO @ 2021-08-19 13:31:14
a数组不用清零
by s_cenxinyang @ 2021-08-19 13:36:15
@[dtrthg](/user/379113) 你 $n$、$m$ 有两个变量,应该打二维的记忆化呀
by qwq___qaq @ 2021-08-19 13:39:28
@[pengzijun](/user/556362) @[cydcyd](/user/359835) 理解了,谢谢大佬们
by dtrthg @ 2021-08-19 13:48:27