求组合数即可 C(n+m*m-1,n)
#include <stdio.h>
#include <iostream>
using namespace std;
#define P (1000000000+7)
int b[2][2000];
int C(int n , int m)
{
bool cur = 1, last = 0;
for(int i=0; i<=n; i++)
{
swap(cur,last); //cur数组存储当前a[i] last数组存储前一排a[i-1]
b[cur][0] = 1;
for(int j=1; j<=i; j++)
{
b[cur][j]=(b[last][j]+b[last][j-1])%P;
}
}
return b[cur][m];
}
int main()
{
int n, m;
scanf("%d%d", &n, &m);
// printf("%d\n", C(n,m) );
printf("%d\n",C(n+m*m-1,n) );
return 0;
}