一卡通大冒险

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 860    Accepted Submission(s): 530

Problem Description
因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身。某天,他们在机房商量一个绝妙的计划"一卡通大冒险"。这个计划是由wf最先提出来的,计划的内容是,把自己的联系方式写在校园一卡通的背面,然后故意将自己的卡"遗失"在某处(如水房,TD,食堂,主M。。。。)他们希望能有MM看到他们遗失卡,能主动跟他们联系,这样就有机会请MM吃饭了。他们决定将自己的一卡通夹在基本相同的书里,然后再将书遗失到校园的各个角落。正当大家为这个绝妙的计划叫好时,大家想到一个问题。很明显,如果只有一张一卡通,那么只有一种方法,即,将其夹入一本书中。当有两张一卡通时,就有了两种选择,即,将两张一卡通夹在一本书里,或者分开夹在不同的书里。当有三张一卡通时,他们就有了5种选择,即:
{{A},{B},{C}} , {{A,B},{C}}, {{B,C},{A}}, {{A,C},{B}} ,{{A,B,C}} 于是,
这个邪恶计划的组织者wf希望了解,如果ACM训练对里有n位帅哥(即有N张一卡通),那么要把这些一卡通夹到书里有多少种不同的方法。
Input
包含多组数据,第一行为n,表示接下来有n组数据。以下每行一个数x,表示共有x张一卡通。(1≤x≤2000).
Output
对每组数据,输出一行:不同的方法数,因为这个数可能非常大,我们只需要它除以1000的余数。
Sample Input
4 1 2 3 100
Sample Output
1 2 5 751
 1 //集合划分问题-----贝尔数
 2
 3 //代码一:---递推
 4 #include<stdio.h>
 5 int dp[2001][2001]; //dp[i][j] 表示i张卡片 分成j堆 的情况数
 6 int num[2001];
 7
 8 int main()
 9 {
10     int T,i,j,n;
11     for(i=1;i<=2000;++i)
12         dp[i][i]=dp[i][1]=1;
13     for(j=2;j<=2000;++j)
14         for(i=2;i<=j;++i)
15             dp[j][i]=(dp[j-1][i-1]+dp[j-1][i]*i)%1000;
16         /*
17         对于卡片j,要使他有i堆,那么只有两种选择,选择原来j-1张卡片时就有i堆的,卡片j只能是放在任何一个堆里面,
18         就有dp[j-1][i]*i 种放法;或者自己独立成为一个堆 那么就只有在j-1张卡片,分成i-1堆的情况下,自己独自成为一个堆,
19         即有dp[j-1][i-1]种放法。
20         */
21     for(i=1;i<=2000;++i)
22         for(j=1;j<=i;++j)
23             num[i]+=dp[i][j];
24     scanf("%d",&T);
25     while(T--)
26     {
27         scanf("%d",&n);
28         printf("%d\n",num[n]%1000);
29     }
30     return 0;
31 }
32
33
34 /*
35 递归思路:
36 第二类Stirling数是把包含n个元素的集合划分为正好k个非空子集的方法的数目。
37 递推公式为:
38 S(n,k) = 0(n<k||k=0),
39 S(n,n) = S(n,1) = 1,
40 S(n,k) = S(n-1,k-1) + kS(n-1,k).
41 */

转载于:https://www.cnblogs.com/dongsheng/archive/2012/09/06/2674133.html

HDU 2512 一卡通大冒险相关推荐

  1. hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数)

    http://acm.hdu.edu.cn/showproblem.php?pid=2512 /** 题意:给你k张不同的卡放到n本书里有多少种放法?(n是无限大) 典型的 斯特灵数第二类 +贝尔数 ...

  2. Hdu 2512 一卡通大冒险 (贝尔数)

    Bell数是将P个元素集合分到非空且不可区分的子集的划分个数 性质详见 贝尔数 - 维基百科,自由的百科全书 每个贝尔数都是"第二类Stirling数"的和 关于斯特林数:斯特林数 ...

  3. 一卡通大冒险(hdu2512)

    一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. F - 一卡通大冒险(贝尔数)

    斯特林数 第一类斯特林数(有正负,绝对值表示 包含n个元素的集合分作k个环排列的方法数) S(n,0)=0 , S(1,1)=1 , S(n+1,k)=S(n,k-1)+n*S(n,k) 第二类斯特林 ...

  5. AOJ-AHU-OJ-595 撒哈拉大冒险(栈)

    撒哈拉大冒险 Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB Total Submission: 193    ...

  6. 指尖大冒险、跳一跳升级版html5游戏全代码

    指尖大冒险.跳一跳升级版html游戏全代码 博主的话 文件目录 运行图片 指尖大冒险.html style.css 进行下一个游戏的开发! 博主的话 这是最后一个纯原生js代码编出来的游戏了.我连这个 ...

  7. createjs开发h5游戏: 指尖大冒险

    之前看到一个指尖冒险游戏,觉得挺有意思,就想学习一下怎么实现,毕竟当产经提出类似的需求时,问我等开发可不可以实现的时候,不至于回答不知道. 本文的主要思路,参考的是凹凸实验室的这篇文章:H5游戏开发: ...

  8. 智商负250,我可能玩了一个假的大冒险

    PMCAFF(www.pmcaff.com):互联网产品社区,是百度,腾讯,阿里等产品经理的学习交流平台.定期出品深度产品观察,互联产品研究首选. 外包大师(www.waibaodashi.com): ...

  9. Unity官方教程Ruby大冒险的自学笔记

    Unity官方教程Ruby大冒险的自学笔记 一. //正确例子: void Update(){//获取运动矢量moveX = Input.GetAxisRaw("Horizontal&quo ...

最新文章

  1. 13.jQuery选择器
  2. MongoDb连接表的查询
  3. cmake编译Debug和Release
  4. 232 Crossword Answers
  5. MySQL的安装与连接方法
  6. JAVA 相关书籍推荐(全)
  7. C++编程之自定义日志类 ——log4cpp使用详解
  8. word转网页html,Word转网页html
  9. 在你的ipad上使用Vscode撸代码(快速操作向)
  10. 源于《赘婿》电视剧 拼多多申请“拼刀刀”商标
  11. 深度学习之文本摘要自动生成
  12. android 贝塞尔曲线 画圆,如何用贝塞尔曲线创建圆?
  13. 总体标准差、样本标准差、标准误差
  14. Flutter中文网
  15. mysql服务怎么启动和关闭?
  16. 简单谱子C语言程序,c语言曲谱_单片机c语言音乐简谱代码
  17. 【数字化】国产自主智能制造数字化车间
  18. C语言入门——《明解C语言》入门篇第四章练习
  19. python代码重构技巧_Python代码重构
  20. Adobe illustrator如何将导入的pdf格式图片里的图形对象拆分组合

热门文章

  1. 健康证(公共卫生类)
  2. SQL注入(SQL注入(SQLi)攻击)攻击-注入点
  3. 芯片里的CPU、GPU、NPU是什么,它们是如何工作的
  4. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
  5. LogMiner学习笔记
  6. ADO.NET连接数据库
  7. 从人人网抓取高校数据信息,包括,省份 - 高校 - 院系 (提供最终SQL文件下载)...
  8. R7-2 试试多线程 (10 分)
  9. 7-57 又来一个上三角数字三角形 (10 分)
  10. 实验5 函数程序设计 6-8 使用函数求最大公约数