# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1034275 | 2024-07-25T11:36:55 Z | toan2602 | Tents (JOI18_tents) | C++14 | 0 ms | 348 KB |
#include<bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9+7; int n, m, dp[3005][3005]; int bp(int a, int b) { int res = 1; while(b) { if(b & 1) res = res * a % mod; a = a * a % mod; b >>= 1; } return res; } void solve() { cin >> n >> m; dp[1][1] = 4; int r2 = bp(2, mod-2); dp[0][0] = dp[0][1] = dp[1][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if(i==1 && j==1) continue; dp[i][j] = dp[i-1][j] + dp[i-1][j-1] * j %mod * 4, dp[i][j] %= mod; if(j>=2)dp[i][j] += (dp[i-1][j-2] * m % mod * (n-1) %mod * r2), dp[i][j] %= mod; if(i>=2)dp[i][j] += (dp[i-2][j-1] * n % mod * (m-1) %mod * r2), dp[i][j] %= mod; } } cout << dp[n][m]; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(fopen("input.inp","r")){ freopen("input.inp", "r", stdin); freopen("output.out", "w", stdout); } int t = 1; // cin >> t; while(t--) { solve(); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |