首页 > 代码库 > HDU 2643

HDU 2643

(第二类斯特林数*N的阶乘 )的和。

#include <iostream>#include <cstdio>#include <algorithm>#define LL __int64#define MOD 20090126using namespace std;LL str[101][101];LL con[101];void initial(){	con[0]=1;	for(LL i=1;i<=100;i++)	con[i]=(con[i-1]*i)%MOD;	for(LL i=0;i<=100;i++){		for(LL j=0;j<=i;j++){			if(i==j) str[i][j]=1;			else if(j==0&&i>=1) str[i][j]=0;			else{				str[i][j]=((j*str[i-1][j])%MOD+str[i-1][j-1])%MOD;			}		}	}}int main(){	initial();	LL n,T;	scanf("%I64d",&T);	while(T--){		scanf("%I64d",&n);		LL ans=0;		for(LL i=1;i<=n;i++)		ans=(ans+(str[n][i]*con[i])%MOD)%MOD;		printf("%I64d\n",ans);	}	return 0;}

  

HDU 2643