Submission #995545

#TimeUsernameProblemLanguageResultExecution timeMemory
995545nika7878Tents (JOI18_tents)C++14
100 / 100
84 ms71116 KiB
#include <bits/stdc++.h> using namespace std; long long dp[3005][3005]; int main() { int n, m; cin >> n >> m; long long mod=1e9+7; for (int i=0; i<=3000; i++) dp[i][0]=dp[0][i]=1; for (int i=1; i<=3000; i++) { for (int j=1; j<=3000; j++) { dp[i][j]+=dp[i-1][j]; dp[i][j]+=dp[i-1][j-1]*4*j; if (j>=2) dp[i][j]+=dp[i-1][j-2]*j*(j-1)/2; if (i >= 2) dp[i][j]+=dp[i-2][j-1]*(i-1)*j; dp[i][j]%=mod; } } cout << dp[n][m]-1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...