# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
101638 | 2019-03-19T05:49:00 Z | KCSC | Tents (JOI18_tents) | C++14 | 7 ms | 384 KB |
#include <bits/stdc++.h> using namespace std; const int DIM = 3005; const int MOD = 1000000007; int dp[DIM][DIM]; int solve(int n, int m) { if (n < 0 || m < 0) { return 0; } if (n == 0 || m == 0) { return 1; } if (dp[n][m] != -1) { return dp[n][m]; } long long ans = 0; ans += solve(n - 1, m); ans += 4LL * solve(n - 1, m - 1) * m; ans += 1LL * solve(n - 1, m - 2) * m * (m - 1) / 2; ans += 1LL * solve(n - 2, m - 1) * m * (n - 1); return dp[n][m] = ans % MOD; } int main(void) { freopen("tents.in", "r", stdin); freopen("tents.out", "w", stdout); int n, m; cin >> n >> m; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { dp[i][j] = -1; } } cout << (solve(n, m) - 1 + MOD) % MOD; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |