Submission #1109772

#TimeUsernameProblemLanguageResultExecution timeMemory
1109772ttamxTents (JOI18_tents)C++17
100 / 100
34 ms71024 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; const int N=3005; const int MOD=1e9+7; int h,w; ll dp[N][N]; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> h >> w; for(int i=0;i<=h;i++){ dp[i][0]=1; } for(int i=0;i<=w;i++){ dp[0][i]=1; } for(int i=1;i<=h;i++){ for(int j=1;j<=w;j++){ dp[i][j]+=dp[i-1][j]; dp[i][j]+=dp[i-1][j-1]*j*4; if(i>=2){ dp[i][j]+=dp[i-2][j-1]*(i-1)*j; } if(j>=2){ dp[i][j]+=dp[i-1][j-2]*(1LL*j*(j-1)/2); } dp[i][j]%=MOD; } } cout << (dp[h][w]-1+MOD)%MOD; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...