Submission #1226905

#TimeUsernameProblemLanguageResultExecution timeMemory
1226905wedonttalkanymoreTents (JOI18_tents)C++20
100 / 100
195 ms71372 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7; int r, c; int f[3005][3005]; int dp(int i, int j) { if (i <= 0 || j <= 0) return 1; if (f[i][j] != -1) return f[i][j]; f[i][j] = 0; f[i][j] = (f[i][j] + (dp(i - 1, j - 2) * (j * (j - 1)) / 2) % mod + (dp(i - 2, j - 1) * (i - 1) * j) % mod + (dp(i - 1, j) % mod) + (dp(i - 1, j - 1) * j * 4) % mod) % mod; return f[i][j]; } signed main() { cin >> r >> c; memset(f, -1, sizeof(f)); cout << dp(r, c) - 1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...