题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2643

题意:

  有n个个选手参赛,问排名有多少种情况(可以并列)。

题解:

  简化问题:

    将n个不同的元素放到i个有差别的盒子中,情况数为P(n,i),求∑P(n,i) (1<=i<=n)

  再简化:

    将n个不同的元素放到i个无差别的盒子中,情况数为S(n,i),求∑( S(n,i)*i! ) (1<=i<=n)

  

  哇这是第二类Stirling数 ( ̄▽ ̄)~*

  递推式:s(n,k) = s(n-1,k-1) + k*s(n-1,k)

AC Code:

 1 // s(n,k) = s(n-1,k-1) + k*s(n-1,k)
 2 // s(n,n) = 1
 3 // s(n,0) = 0
 4 // ans = sigma(s[n][i = 1 to n] * i!)
 5
 6 #include <iostream>
 7 #include <stdio.h>
 8 #include <string.h>
 9 #define MAX_N 105
10 #define MOD 20090126
11
12 using namespace std;
13
14 int n,t;
15 long long s[MAX_N][MAX_N];
16 long long sum[MAX_N][MAX_N];
17 long long fact[MAX_N];
18
19 void stirling()
20 {
21     memset(s,0,sizeof(s));
22     for(int i=1;i<MAX_N;i++)
23     {
24         s[i][i]=1;
25         for(int j=1;j<i;j++)
26         {
27             s[i][j]=(s[i-1][j-1]+j*s[i-1][j])%MOD;
28         }
29     }
30 }
31
32 void cal_fact()
33 {
34     fact[0]=1;
35     for(int i=1;i<MAX_N;i++)
36     {
37         fact[i]=(fact[i-1]*i)%MOD;
38     }
39 }
40
41 int main()
42 {
43     stirling();
44     cal_fact();
45     cin>>t;
46     for(int cas=1;cas<=t;cas++)
47     {
48         cin>>n;
49         long long sum=0;
50         for(int i=1;i<=n;i++)
51         {
52             sum+=s[n][i]*fact[i];
53             sum%=MOD;
54         }
55         cout<<sum<<endl;
56     }
57 }

转载于:https://www.cnblogs.com/Leohh/p/7384261.html

HDU 2643 Rank:第二类Stirling数相关推荐

  1. 高等组合学笔记(六): 第二类Stirling数,第一类Stirling数以及生成函数

    集合的分类 定理: nnn元集合NNN的分类μ=(A1,A2,⋯,Am)\mu=(A_1,A_2,\cdots,A_m)μ=(A1​,A2​,⋯,Am​), (∣Ai∣=ai|A_i|=a_i∣Ai​ ...

  2. 第二类Stirling数(第二类斯特林数)

    第二类Stirling数(第二类斯特林数) 定义 第二类Stirling数表示把nnn个不同的数划分为mmm个集合的方案数,要求不能为空集,写作S(n,m)S(n,m)S(n,m). 和第一类Stir ...

  3. hdu-4045-Machine scheduling-组合数学(插板+第二类Stirling数)

    http://acm.hdu.edu.cn/showproblem.php?pid=4045 题意: n个机器,每天选择r个机器,这任意r个机器编号差>=k,并且将它们分成不到m个相同的组,一共 ...

  4. [CF932]E - Team Work 第二类stirling数

    还是那个用下降幂替换kkk次幂的套路.推式子: ∑i=1n(ni)ik=∑i=1n(ni)∑j=0k{nj}ij_" role="presentation">∑i= ...

  5. 【转】第一类Stirling数和第二类Stirling

    转自:http://blog.csdn.net/acdreamers/article/details/8521134 第一类Stirling数 s(p,k)    s(p,k)的一个的组合学解释是:将 ...

  6. 第一类Stirling数和第二类Stirling

    第一类Stirling数 s(p,k)    s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数. s(p,k)的递推公式: s(p,k)=(p-1)*s(p-1,k)+s(p- ...

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

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

  8. 高等组合学笔记(八):第一类Stirling数, 整数分拆

    第一类Stirling数的递推关系式 定理A: s(n,k)=s(n−1,k−1)−(n−1)s(n−1,k),(n,k≥1),s(n,0)=s(0,k)=0,(n,k≥1),s(0,0)=1s(n, ...

  9. 斯特灵数 (Stirling数)

    @维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...

最新文章

  1. 特斯拉撤诉和解,小鹏汽车沉冤得雪:警惕自动驾驶领域的“美国陷阱”
  2. Pytorch实践中文教程(1)
  3. Spring MVC集成测试:断言给定的模型属性有全局错误
  4. php 图片后缀,PHP如何实现图片无后缀
  5. Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
  6. Javascript中类型的判断
  7. 打破“信息孤岛”不能透支信息安全
  8. R语言软件R Studio以及python下载函数包使用常见问题(持续更新中)
  9. 日志配置文件详解-logback,log4j
  10. B2B跨境电子商务平台综合服务解决方案
  11. 转速环PI参数整定详解(三)——转速环开环传函特性及其整定策略(有最终推导结果公式)
  12. redis 客户端 -- lettuce 介绍
  13. OSI 的七层模型有哪些?
  14. 七彩背景(Background)
  15. abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)
  16. NC:宏基因组联合宏蛋白组分析揭示土壤微生物降解多酚
  17. 关于佛教出家人衣食住行的问答交流贴19(转贴)
  18. Google Play In-app Billing 踩过的那些坑
  19. 从数据来看2014年中国移动互联网
  20. linux centos livecd,定制自己的LiveCD,依托(centos)

热门文章

  1. 《深度学习》学习的TIP
  2. 《Pytorch - CNN模型》
  3. wxPython4.0中ListCtrl入门
  4. 【Tensorflow】TF中的字符串tf.string
  5. Skip-Thought Vector —— 跳跃思维句表示
  6. 相机标定(Camera calibration)
  7. 如何制作一个基于Tile的游戏 Cocos2d-x 2 0 4
  8. CREO - 基础3 - 用拉升的方法构建一个双轮胎模型
  9. python3 ftp启动_python3利用pyftpdlib模块启动ftp服务
  10. tftp服务器从交换机上下载配置命令_软考网络工程师之交换机和路由(交换机基础)...