| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1349717 | jump | Tents (JOI18_tents) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#define int long long
int dp[3010][3010];
int pref[3010][3010];
int pref2[3010][3010];
int n,m;
int MOD=1e9+7;
int c2(int a){
return (a*(a-1))/2;
}
signed main() {
std::cin >> n >> m;
int sum=0;
for(int i=0;i<=n+1;i++)pref[i][0]=1,pref[i][1]=1;
for(int j=0;j<=m+1;j++)pref[0][j]=pref[1][j]=j*4+1+c2(j);
pref[0][0]=1;
pref[0][1]=1;
pref[1][0]=1;
pref[1][1]=1;
for(int i=2;i<=n;i++){
for(int j=2;j<=m;j++){
pref[i][j]=(pref[i-1][j]+pref[i-1][j-1]*j*4+pref[i-1][j-2]*C2(j)+pref[i-2][j-1]*(i-1)*j)%MOD;
}
}
std::cout << pref[n][m]-1;
}