Submission #798196

#TimeUsernameProblemLanguageResultExecution timeMemory
798196vjudge1Tents (JOI18_tents)C++14
100 / 100
59 ms70684 KiB
#include<bits/stdc++.h> #define fi first #define se second #define ll long long using namespace std ; const ll N = 3000, mod = 1e9 + 7 ; ll dp[N + 1][N + 1] ; signed main() { ios_base::sync_with_stdio( 0 ) ; cin.tie( 0 ) ; cout.tie( 0 ) ; ll n, m ; cin >> n >> m ; for(ll j = 0 ; j <= N ; j++) dp[0][j] = dp[j][0] = 1 ; for(ll i = 1 ; i <= n ; i++) for(ll j = 1 ; j <= m ; j++) { dp[i][j] += dp[i - 1][j] ; dp[i][j] += dp[i - 1][j - 1] * 4ll * j ; if(j >= 2) dp[i][j] += dp[i - 1][j - 2] * (j * (j - 1) / 2ll) ; if(i >= 2) dp[i][j] += dp[i - 2][j - 1] * (j * (i - 1)) ; dp[i][j] %= mod ; } cout << (dp[n][m] - 1 + mod) % mod ; return 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...