题目链接: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:

 // s(n,k) = s(n-1,k-1) + k*s(n-1,k)
// s(n,n) = 1
// s(n,0) = 0
// ans = sigma(s[n][i = 1 to n] * i!) #include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 105
#define MOD 20090126 using namespace std; int n,t;
long long s[MAX_N][MAX_N];
long long sum[MAX_N][MAX_N];
long long fact[MAX_N]; void stirling()
{
memset(s,,sizeof(s));
for(int i=;i<MAX_N;i++)
{
s[i][i]=;
for(int j=;j<i;j++)
{
s[i][j]=(s[i-][j-]+j*s[i-][j])%MOD;
}
}
} void cal_fact()
{
fact[]=;
for(int i=;i<MAX_N;i++)
{
fact[i]=(fact[i-]*i)%MOD;
}
} int main()
{
stirling();
cal_fact();
cin>>t;
for(int cas=;cas<=t;cas++)
{
cin>>n;
long long sum=;
for(int i=;i<=n;i++)
{
sum+=s[n][i]*fact[i];
sum%=MOD;
}
cout<<sum<<endl;
}
}

HDU 2643 Rank:第二类Stirling数的更多相关文章

  1. hdu 2643 rank 第二类斯特林数

    题意:给定n个人,要求这n个人的所有可能排名情况,可以多个人并列(这个是关键). 题解:由于存在并列的问题,那么对于n个人,我们最多有n个排名,枚举一下1~n,累加一下就好.(注意这里是变种的斯特林数 ...

  2. lightOJ 1326 Race(第二类Stirling数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...

  3. [总结] 第二类Stirling数

    上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...

  4. 第二类Stirling数

    第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...

  5. [BZOJ5093]图的价值(NTT+第二类Stirling数)

    5093: [Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 250  Solved: 130[Submit][Sta ...

  6. LightOJ 1326 – Race 第二类Stirling数/

    简单的模板题. 题意:问n匹马出现的不同排名数. 题解:可以使用DP,本质上还是第二类Stirling数(隔板法) #include <stdio.h> #include <iost ...

  7. 第二类Stirling数初探 By cellur925

    上午noi.ac崩崩崩了,栽在组合数学上,虽说最后在辰哥&Chemist的指导下A掉了此题,也发现自己组合数学太弱了qwq. 在luogu上找题,结果找到了一个第二类斯特林数的题(还是双倍经验 ...

  8. 自然数幂和——第一类Stirling数和第二类Stirling数

    第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...

  9. (转) [组合数学] 第一类,第二类Stirling数,Bell数

    一.第二类Stirling数 定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数. 证明:元素在哪些盒子并不重要,唯一重要的是各个盒子里装的 ...

随机推荐

  1. hdu1394 Minimum Inversion Number(最小逆序数)

    Minimum Inversion Number Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/O ...

  2. 国内最受欢迎的7大API供应平台对比和介绍

    俗话说“巧妇难为无米之炊”,数据源就是数据产生价值中的那些大米.那大数据时代企业需要哪些数据呢?根据我个人理解我觉得可以大致分为以下几类: 1.(内部)企业自身业务生产经营环节产生的内部数据[包括销售 ...

  3. apue学习笔记(第四章 文件和目录)

    本章将描述文件系统的其他特性和文件的性质. 函数stat.fstat.fstatat和lstat #include <sys/stat.h> int stat(const char *re ...

  4. 【Excle数据透视】如何在数据透视表字段列表中显示更多的字段

    创建完数据透视表之后,由于字段太多,在列表中没有完全显示 解决方案 通过"字段节和区域节并排"功能来显示更多字段 修改后结果 字段已经完全显示出来了! "字段节和区域节层 ...

  5. UDP最大传输字节

    每个包最大可携带字节长度:65507个byte. 封装成 IP 后,大小超出 PMTU 的分组将可能被 fragmented. 如果设置了 Don't Frag,超出 PMTU 的分组将不能被发送. ...

  6. robot framework selenium2library定位

    进行页面元素操作,最麻烦的莫过于元素定位了,经常提示element is not visible 或者element is not exist 下面介绍常见的定位方法和定位中的问题 1 使用name和 ...

  7. NightWatchJS(转)

    关于Nightwatch? Nightwatch.js是一个测试web app和web 站点的自动化测试框架, 使用Node.js编写, 基于Selenium WebDriver API. 它是一个完 ...

  8. HTTP POST请求数据提交格式(转)

    FROM: http://bbs.125.la/thread-13743350-1-1.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...

  9. 输出 pdf

    jar 包 :core-renderer.jar  iText-2.0.8.jar   iTextAsian.jar 方式1: import java.io.FileNotFoundException ...

  10. 在mac下搭建java开发环境

    刚刚从windows系统转到使用mac系统.感觉不是特别熟悉,须要一定的适应时间. 以下简介一下mac下搭建主要的java开发环境. 1.安装jdk 安装jdk1.7后,发现不须要进行环境变量配置,直 ...