新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1016 Accepted Submission(s): 641
题意 将N张卡分红若干个集合,集合不为空,有多少种分法
思路 :贝尔数
飞机票:http://acm.hdu.edu.cn/showproblem.php?pid=2512
S(P,K)=S(P-1,K-1)+K*S(P-1,K);表现P个元素放入K个不可区分的集合中而且集合不为空的分别个数。
那么问题的解为sigma(S(P,i)) (P=>i>=1) 这个和称为bell数。
Bell数是将P个元素集合分到非空且不可区分例子的分别个数。详见组合数学
#include<stdio.h> int f[2111][2111],ans[2111];//i个元素放进j个集合里面的方法数 void get() { int n,m,i,k; //for(k=1;k<=2000;k++) //f[1][k]=1; for(i=1;i<=2000;i++) f[i][1]=1; for(i=2;i<=2000;i++) for(k=1;k<=2000;k++) { f[i][k]=f[i-1][k-1]+f[i-1][k]*k; f[i][k]%=1000; } for(i=1;i<=2000;i++) { ans[i]=0; for(k=1;k<=i;k++) ans[i]+=f[i][k]%1000; } } int main() { int i,j,m,n; get(); scanf("%d",&n); while(n--) { scanf("%d",&m); printf("%d\n",ans[m]%1000); } return 0; }
文章结束给大家分享下程序员的一些笑话语录: Google事件并不像国内主流媒体普遍误导的那样,它仅仅是中国Z府和美国公司、中国文化和美国文化甚至中国人和美国人之间的关系,是民族主义和帝国主义之间的关系;更重要的是,它就是Z府和公司之间的关系,是权力管制和市场自由之间的关系。从这个意义上说,过度管制下的受害者,主要是国内的企业。Google可以抽身而去,国内的企业只能祈望特区。www.ishuo.cn