Submission #386285

#TimeUsernameProblemLanguageResultExecution timeMemory
386285ogibogi2004Tents (JOI18_tents)C++14
100 / 100
485 ms71148 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long const ll mod=1e9+7; ll dp[3002][3002]; ll n,m; ll solve(ll x,ll y) { if(x==0||y==0)return 1; if(x<0||y<0)return 0; if(dp[x][y]!=-1)return dp[x][y]; ll val=0; val+=solve(x,y-1); val+=x*4*solve(x-1,y-1); val%=mod; val+=x*(x-1)/2*solve(x-2,y-1); val%=mod; val+=x*(y-1)*solve(x-1,y-2); val%=mod; return dp[x][y]=val; } int main() { memset(dp,-1,sizeof(dp)); cin>>n>>m; cout<<(solve(n,m)+mod-1)%mod<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...