hdu - 2512 一卡通大冒险 (斯特灵数 && 贝尔数)
来源:互联网 发布:不贵又高端的礼物知乎 编辑:程序博客网 时间:2024/04/19 19:32
http://acm.hdu.edu.cn/showproblem.php?pid=2512
/** 题意:给你k张不同的卡放到n本书里有多少种放法?(n是无限大)典型的 斯特灵数第二类 +贝尔数 斯特灵数:如:给你k张牌放到n个无标号的盘子里(盘子不能为空)问你有多少种方法;Stirling[i][j] = Stirling[i-1][j-1] + j * Stirling[i-1][j] 表示前i张牌放到j个盘子里的方法数可以由前i-1张牌放到j-1个盘子里的方法数(相当于在其后加一张牌一个盘子) + 前i-1张牌放到j个盘子里(再加一张牌可以放到j个盘子里) * j ;贝尔数:就是斯特灵数的和(即所求值)**/#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int Stirling[20005][20005];int Bell[2005];void init(){ for(int i = 1;i <= 2000;i++)//斯特灵数 { Stirling[i][i] = 1; for(int j = 1;j < i;j++){ Stirling[i][j] = (Stirling[i-1][j-1] + Stirling[i-1][j] * j)%1000; } } for(int i = 1;i <= 2000;i++)//贝尔数 { for(int j = 1;j <= i;j++) Bell[i] = (Bell[i] + Stirling[i][j]) % 1000; }}int main(){ init(); int t; cin >> t; int n; while(t--){ cin >> n; cout << Bell[n] << endl; }}
斯特灵数第一类:
第一类:n个元素分成k个非空循环排列(环)的方法总数
递推式:s(n+1,k)=s(n,k-1)+n*s(n,k)
解释:考虑第n+1个元素 1、单独形成循环排列,剩下的有s(n,k-1)种方法 2、和别的元素一起形成循环排列,n个元素形成循环排列的方法数是s(n,k),第n+1个可以放在第i个元素左边,共有n种放法,一共是n*s(n,k);
code : 如第二类相似
转:http://www.cnblogs.com/xiaohongmao/p/3645517.html 0 0
- HDU 2512 一卡通大冒险(斯特灵数,贝尔数)
- hdu - 2512 一卡通大冒险 (斯特灵数 && 贝尔数)
- hdu 2521 一卡通大冒险 (斯特灵数,贝尔数)
- Hdu 2512 一卡通大冒险 (贝尔数)
- HDU2512 一卡通大冒险【斯特灵数,贝尔数】
- [省选前题目整理][HDU 2512]一卡通大冒险(第二类斯特林数+贝尔数)
- HDU 2512 一卡通大冒险(第二类 stirling 数)
- hdu 2512 一卡通大冒险
- hdu 2512 一卡通大冒险
- hdu 2512 一卡通大冒险
- HDU 2512 一卡通大冒险
- hdu 2512 一卡通大冒险
- hdu 2512 一卡通大冒险
- HDU 2512 一卡通大冒险
- hdu 2512 一卡通大冒险
- hdu 一卡通大冒险[Bell数]
- hdu 2512 一卡通大冒险 (DP)
- hdu 2512 一卡通大冒险 (水题)
- MultiPhraseQuery
- 老顾客,两个地方了购买
- UIViewController的生命周期
- hdu 1160 FatMouse's Speed dp
- 查看Android应用包名、Activity的几个方法
- hdu - 2512 一卡通大冒险 (斯特灵数 && 贝尔数)
- 无需任何编码帮助UI设计师快速实现互动式的原型设计
- 第十周项目二 M$pszi$y是什么意思?
- Android Pain类、Color类、Canvas类的简单应用
- 第10周项目1密码问题(参考用)
- redmide 配置邮箱 出错记录501 mail from address must be same as authorization user
- Red Hat 的OpenShift 云服务对创业公司免费开放了!
- 强悍的WEB服务器Gevent简要介绍
- Lua调用C函数