Submission #1283826

#TimeUsernameProblemLanguageResultExecution timeMemory
1283826aren_danceZapina (COCI20_zapina)C++20
55 / 110
1096 ms580 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const int mod=1e9+7; const int N=351; ll dp[N][N]; ll bpow(ll x,ll y){ if(y==0){ return 1; } ll g=bpow(x,y/2); g*=g; g%=mod; if(y%2==0){ return g; } g*=x; g%=mod; return g; } ll inverse(ll x){ return bpow(x,mod-2); } ll c(ll x,ll y){ ll fx=1; ll fy=1; for(int i=1;i<=x;++i){ fx*=i; fx%=mod; } for(int i=1;i<=y;++i){ fy*=i; fy%=mod; } for(int i=1;i<=(x-y);++i){ fy*=i; fy%=mod; } ll u=fx*inverse(fy); u%=mod; return u; } int main(){ int n; cin>>n; for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ for(int k=0;k<=j;++k){ if(k==i){ dp[i][j]+=(bpow(i-1,j-k)*c(j,k)); dp[i][j]%=mod; continue; } dp[i][j]+=(dp[i-1][j-k]*c(j,k)); dp[i][j]%=mod; } } } cout<<dp[n][n]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...