HDU 2643 Rank:第二类Stirling数
题目链接: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数的更多相关文章
- hdu 2643 rank 第二类斯特林数
题意:给定n个人,要求这n个人的所有可能排名情况,可以多个人并列(这个是关键). 题解:由于存在并列的问题,那么对于n个人,我们最多有n个排名,枚举一下1~n,累加一下就好.(注意这里是变种的斯特林数 ...
- lightOJ 1326 Race(第二类Stirling数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...
- [总结] 第二类Stirling数
上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...
- 第二类Stirling数
第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...
- [BZOJ5093]图的价值(NTT+第二类Stirling数)
5093: [Lydsy1711月赛]图的价值 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 250 Solved: 130[Submit][Sta ...
- LightOJ 1326 – Race 第二类Stirling数/
简单的模板题. 题意:问n匹马出现的不同排名数. 题解:可以使用DP,本质上还是第二类Stirling数(隔板法) #include <stdio.h> #include <iost ...
- 第二类Stirling数初探 By cellur925
上午noi.ac崩崩崩了,栽在组合数学上,虽说最后在辰哥&Chemist的指导下A掉了此题,也发现自己组合数学太弱了qwq. 在luogu上找题,结果找到了一个第二类斯特林数的题(还是双倍经验 ...
- 自然数幂和——第一类Stirling数和第二类Stirling数
第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...
- (转) [组合数学] 第一类,第二类Stirling数,Bell数
一.第二类Stirling数 定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数. 证明:元素在哪些盒子并不重要,唯一重要的是各个盒子里装的 ...
随机推荐
- UVA - 10895 Matrix Transpose
UVA - 10895 Matrix Transpose Time Limit:3000MS Memory Limit:Unknown 64bit IO Format:%lld & % ...
- shell程序
例一:helloworld #!/bin/sh -x message="hello" read name echo "$message ,$name" 例二:选 ...
- openssl之BIO系列之22---Cipher类型的BIO
Cipher类型BIO ---依据openssl doc\crypto\bio_f_cipher.pod翻译和自己的理解写成 (作者:DragonKing, Mail: wzhah@263.net , ...
- Javascript模式(三) 策略模式
var data = { "username" : "zhangsan", "password" : "12345690" ...
- java Map 实现类的对比
java为数据结构中的映射定义了一个接口 java.util.Map ,他有四个实现类
- IE8 "开发人员工具" 无法使用,无法显示
经常使用IE8开发工具的开发人员可能会遇到这么一种去情况:按F12时任务栏里出现开发人员工具的任务,但是开发人员工具窗体不弹出,也不出现在IE8里,重装IE88后还是存在此问题. 解决办法其实非常简单 ...
- request 获取请求头
/********************************************************servlet页面********************************** ...
- SpringBoot学习——运行原理学习及自定义Starter pom
例如:pom文件 导入redis jar包 springboot怎么识别和集成? https://blog.csdn.net/flygoa/article/details/68484439 https ...
- Asp.Net北大青鸟总结(四)-使用GridView实现真假分页
这段时间看完了asp.net视频.可是感觉到自己的学习好像没有巩固好,于是又在图书馆里借了几本关于asp.net的书感觉真的非常好自己大概对于asp.net可以实现主要的小Demo.可是我知道仅仅有真 ...
- ASP.NET动态网站制作(6)-- JS(1)
前言:JS的第一节课,在Visual Studio 2013中编写及运行.新建项目->Web->ASP.NET Web应用程序->Empty,打开后在项目下添加新建css文件夹和js ...