Submission #833120

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