HDU2643 Rank 第二类斯特林数
来源:互联网 发布:php 微信开发 编辑:程序博客网 时间:2024/06/08 06:32
第二类斯特林数
把一个包含n个元素的集合分成k个非空子集的方法数:
初始值:
递推式:
考虑第n个元素,如果它自成一个集合,那么前n-1个元素构成k-1个集合,就是S(n,k),如果它不是自成集合,那么前面n-1个元素构成k个集合,再把第n个元素加到任意一个集合中,共k种方案。
题目大意:
n位选手参加比赛,每个选手有一个排名,有可能有并列,那么排名情况有多少种可能?
n位选手可以放到1个集合,两个集合。。。。n个集合,因为每个集合对应的是名次,所以集合是区分的。
那么对于n个选手,可以选择的方案数:
#include <bits/stdc++.h>using namespace std;const int mod = 20090126;const int MAXN = 100+5;int n;int s2[MAXN][MAXN];int fac[MAXN];void get_s2(){ fac[0] = 1; for(int i = 1; i <= 100; ++i)fac[i] = (long long)fac[i-1]*i%mod; for(int i = 1; i <= 100; ++i) { s2[i][1] = s2[i][i] = 1; for(int j = 2; j < i; ++j) { s2[i][j] = (s2[i-1][j-1] + (long long)j*s2[i-1][j]%mod)%mod; } }}int main(){ get_s2(); int t; scanf("%d",&t); while(t--) { scanf("%d",&n); int ans = 0; for(int i = 1; i <= n; ++i)ans = (ans+(long long)fac[i]*s2[n][i]%mod)%mod; printf("%d\n",ans); } return 0;}
阅读全文
0 0
- HDU2643 Rank 第二类斯特林数
- hdu2643(第二类斯特林数) Rank
- hdu2643
- hdu 2643 Rank(第二类斯特林数)
- hdu2643 map练习
- Rank
- rank()
- rank
- RANK
- Rank
- rank
- Rank
- Rank
- Rank
- rank
- HDOJ 题目2643 Rank(斯特林第二类数)
- oracle 查询取第二行值 rank 与 ROWNUM
- 第二类斯特林数
- 已知前序遍历和中序遍历的结果求后序遍历
- js反转字符串方法
- 使用ImageLoader实例 进行加载图片
- 难忘的JS传参问题
- 用二维数组写的简单的推箱子,一个人,两个箱子,两个圈的情况。。
- HDU2643 Rank 第二类斯特林数
- permutation
- jsp基础—1
- java System类
- Java中的泛型
- 可变参列表
- 集成springmvc和mybatis环境的Javaweb基础框架,省去新手搭建繁琐环境的苦恼
- Kruskal算法:贪心+并查集=最小生成树
- Open-falcon:Agent源码