#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |