Submission #610089

#TimeUsernameProblemLanguageResultExecution timeMemory
610089penguinhackerTents (JOI18_tents)C++17
100 / 100
117 ms70764 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ar array const int mxN=3000, M=1e9+7; int n, m; ll dp[mxN+1][mxN+1]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i=0; i<=max(n, m); ++i) dp[0][i]=dp[i][0]=1; for (int i=1; i<=n; ++i) for (int j=1; j<=m; ++j) { // two tents on row 1 dp[i][j]=dp[i-1][j]; if (j>=2) dp[i][j]=(dp[i][j]+dp[i-1][j-2]*j*(j-1)/2)%M; dp[i][j]=(dp[i][j]+dp[i-1][j-1]*4*j)%M; if (i>=2) dp[i][j]=(dp[i][j]+dp[i-2][j-1]*j*(i-1))%M; } cout << (dp[n][m]-1+M)%M; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...