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:
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数相关推荐
- 高等组合学笔记(六): 第二类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 ...
- 第二类Stirling数(第二类斯特林数)
第二类Stirling数(第二类斯特林数) 定义 第二类Stirling数表示把nnn个不同的数划分为mmm个集合的方案数,要求不能为空集,写作S(n,m)S(n,m)S(n,m). 和第一类Stir ...
- hdu-4045-Machine scheduling-组合数学(插板+第二类Stirling数)
http://acm.hdu.edu.cn/showproblem.php?pid=4045 题意: n个机器,每天选择r个机器,这任意r个机器编号差>=k,并且将它们分成不到m个相同的组,一共 ...
- [CF932]E - Team Work 第二类stirling数
还是那个用下降幂替换kkk次幂的套路.推式子: ∑i=1n(ni)ik=∑i=1n(ni)∑j=0k{nj}ij_" role="presentation">∑i= ...
- 【转】第一类Stirling数和第二类Stirling
转自:http://blog.csdn.net/acdreamers/article/details/8521134 第一类Stirling数 s(p,k) s(p,k)的一个的组合学解释是:将 ...
- 第一类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- ...
- Hdu 2512 一卡通大冒险 (贝尔数)
Bell数是将P个元素集合分到非空且不可区分的子集的划分个数 性质详见 贝尔数 - 维基百科,自由的百科全书 每个贝尔数都是"第二类Stirling数"的和 关于斯特林数:斯特林数 ...
- 高等组合学笔记(八):第一类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, ...
- 斯特灵数 (Stirling数)
@维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...
最新文章
- 特斯拉撤诉和解,小鹏汽车沉冤得雪:警惕自动驾驶领域的“美国陷阱”
- Pytorch实践中文教程(1)
- Spring MVC集成测试:断言给定的模型属性有全局错误
- php 图片后缀,PHP如何实现图片无后缀
- Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
- Javascript中类型的判断
- 打破“信息孤岛”不能透支信息安全
- R语言软件R Studio以及python下载函数包使用常见问题(持续更新中)
- 日志配置文件详解-logback,log4j
- B2B跨境电子商务平台综合服务解决方案
- 转速环PI参数整定详解(三)——转速环开环传函特性及其整定策略(有最终推导结果公式)
- redis 客户端 -- lettuce 介绍
- OSI 的七层模型有哪些?
- 七彩背景(Background)
- abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)
- NC:宏基因组联合宏蛋白组分析揭示土壤微生物降解多酚
- 关于佛教出家人衣食住行的问答交流贴19(转贴)
- Google Play In-app Billing 踩过的那些坑
- 从数据来看2014年中国移动互联网
- linux centos livecd,定制自己的LiveCD,依托(centos)
热门文章
- 《深度学习》学习的TIP
- 《Pytorch - CNN模型》
- wxPython4.0中ListCtrl入门
- 【Tensorflow】TF中的字符串tf.string
- Skip-Thought Vector —— 跳跃思维句表示
- 相机标定(Camera calibration)
- 如何制作一个基于Tile的游戏 Cocos2d-x 2 0 4
- CREO - 基础3 - 用拉升的方法构建一个双轮胎模型
- python3 ftp启动_python3利用pyftpdlib模块启动ftp服务
- tftp服务器从交换机上下载配置命令_软考网络工程师之交换机和路由(交换机基础)...