标签:
简单dp
dp[i][j]表示i长卡放到j本书里
#include<iostream> #include<cstring> #define maxn 2000+5 using namespace std; int dp[maxn][maxn]; void ready() { memset(dp,0,sizeof(dp)); dp[1][1]=1;dp[2][1]=dp[2][2]=1; for(int i=2;i<=2000;i++) { for(int j=1;j<=i;j++) { dp[i][j]=j*dp[i-1][j]+dp[i-1][j-1]; dp[i][j]%=1000; } } } int main() { cin.sync_with_stdio(false); int t; cin>>t; ready(); while(t--) { int n; cin>>n; int re=0; for(int i=1;i<=n;i++) { re+=dp[n][i]; } cout<<re%1000<<endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/zafkiel_nightmare/article/details/45621007