标签:oid 阶乘 name man fine amp ber tin cst
---恢复内容开始---
2017-08-10 20:32:37
writer:pprp
题意如下:
InputThe first line will contain a T,then T cases followed.
each case only contain one integer N (N <= 100),indicating the number of people.OutputOne integer pey line represent the answer MOD 20090126.Sample Input
2 2 3
Sample Output
3 13
代码如下:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ll long long using namespace std; const int N = 110; const int MOD = 20090126; ll dp[N][N], ans[N], fac[N]; void init() { fac[1] = 1; for(int i = 2; i < N; i++) fac[i] = (fac[i-1]*i)%MOD; //阶乘初始化 memset(dp, 0, sizeof(dp)); for(int n = 1; n < N; n++) { dp[n][1] = 1; dp[n][n] = 1; for(int k = 2; k < n; k++) { dp[n][k] = dp[n-1][k-1]+k*dp[n-1][k]; dp[n][k] %= MOD; } } } int main() { int T, n; init(); cin>>T; while(T--) { cin>>n; ll ans = 0; for(int i = 1; i <= n; i++) ans = (ans + fac[i]*dp[n][i]) % MOD; cout<<ans<<endl; } return 0; }
标签:oid 阶乘 name man fine amp ber tin cst
原文地址:http://www.cnblogs.com/ilovelianghui/p/7341393.html