玄学DP
观察样例发现,结果都是完全平方数,找规律。。。都说了是玄学
ans[i][j] = dp[i][j] * dp[i][j];
dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + 1;
OK,到此结束。。。
果然很悬
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7, N = 2005;
ll dp[N][N];
int main()
{
for (int i = 1; i <= 2000; i++){
dp[i][1] = dp[1][i] = i;
}
for (int i = 2; i <= 2000; i++){
for (int j = 2; j <= 2000; j++){
dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + 1;
dp[i][j] %= mod;
}
}
int n, m;
while (~scanf("%d %d", &n, &m)){
ll res = dp[n][m] * dp[n][m] % mod;
printf("%lld\n", res);
}
return 0;
}