Submission #651441

#TimeUsernameProblemLanguageResultExecution timeMemory
651441aebovTents (JOI18_tents)C++17
100 / 100
256 ms70804 KiB
#include<iostream> #include<algorithm> #include<vector> #define ll long long #define pb push_back using namespace std; const ll mod = (ll)1e9 + 7; ll mul(ll a, ll b){ return 1LL * (a%mod) * (b%mod) % mod; } ll add(ll a, ll b){ return ((a%mod) + (b%mod) ) % mod; } const int N = (int)3002; ll dp[N][N]; int n, m; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int i = 0; i <= n; i ++){ for(int j = 0; j <= m; j ++){ if(i == 0 || j == 0){ dp[i][j]= 1; continue; } dp[i][j] = dp[i][j-1]; dp[i][j] = add(dp[i][j], mul(1LL * i * 4, dp[i-1][j-1])); if(j > 1)dp[i][j] = add(dp[i][j], mul(1LL * i * (j - 1) , dp[i-1][j-2])); if(i > 1)dp[i][j] = add(dp[i][j], mul(1LL * i * (i - 1) / 2, dp[i-2][j-1])); //cout << i << " " << j << " : " << dp[i][j] - 1 << endl; } } cout << add( -1, dp[n][m]) << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...