1 条题解
-
0
#include <bits/stdc++.h> #define ll long long #define P 1000000007 using namespace std; const int N=355; int n,m,k,s,t; ll C[N][N],f[N][N]; ll qpow(ll a,ll b){ ll ans=1; for (;b;b>>=1){ if (b&1) ans=ans*a%P; a=a*a%P; } return ans; } int main(){ cin>>n; for (int i=0;i<=n;++i){ C[i][0]=1; for (int j=1;j<=i;++j) C[i][j]=(C[i-1][j-1]+C[i-1][j])%P; } f[1][1]=1; for (int i=2;i<=n;++i) for (int j=1;j<=n;++j) for (int k=0;k<=j;++k) if (k==i) (f[i][j]+=C[j][k]*qpow(i-1,j-k))%=P; else (f[i][j]+=C[j][k]*f[i-1][j-k])%=P; cout<<f[n][n]; }
- 1
信息
- ID
- 750
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 2
- 上传者