#include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <stack>
#include <algorithm>
#include <string>
#include <queue>
#include <cctype>
#include <cstring>
#include <iomanip>
#include <deque>
#include <random>
#include <sstream>
// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx,avx2,bmi,bmi2,popcnt,lzcnt")
// #pragma GCC optimize("Ofast","inline","no-stack-protector")
// #pragma GCC target("arch=skylake")
using namespace std;
#define file(name) freopen(name".inp","r",stdin);\
freopen(name".out","w",stdout);
#define TIME (1.0*clock()/CLOCKS_PER_SEC)
#define all(a) a.begin(),a.end()
#define all1(a) a+1,a+n+1
#define ll long long
const long long INF=1e18;
const long long MOD=1e9+7;
const long long MODD[] = {(long long)998244353,(long long)1e9+2277, (long long)1e9+5277}; // 998244353
const int maxN=2e5+9;
const long long LOG=20;
const double eps = 1e-1;
//------------------------
void solve();
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// file("PNUM");
int t;
// cin >> t;
t=1;
while (t--){
solve();
}
cerr << "Time: " << TIME << "s.\n";
cerr << "ducminh";
return 0;
}
/// -------------- PROBLEM SOLUION --------------------
int n;
long long dp[409][409];
long long fac[409], ifac[409];
long long binpow(long long a, long long b){
long long ans=1;
while (b){
if (b&1) ans=ans*a%MOD;
a=a*a%MOD;
b>>=1;
}
return ans;
}
void genfac(int n){
fac[0]=1;
for (int i=1; i<=n; i++){
fac[i]=fac[i-1]*i%MOD;
}
ifac[n]=binpow(fac[n], MOD-2);
for (int i=n; i>=1; i--){
ifac[i-1]=ifac[i]*i%MOD;
}
}
long long combine(int n, int k){
if (k < 0 || k > n) return 0;
return fac[n]*ifac[k]%MOD*ifac[n-k]%MOD;
}
void solve(){
cin >> n;
genfac(n+2);
dp[0][0]=1;
for (int i=1; i<=n; i++){
for (int j=0; j<=n; j++){
for (int k=0; k<=n-j; k++){
if (k!=i) (dp[i][j+k]+=dp[i-1][j]*combine(n-j,k)%MOD)%=MOD;
}
}
}
cout << (binpow(n,n)%MOD-dp[n][n]+MOD*MOD)%MOD;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |