SDNU 1011.盒子与球 第二类stirling数(组合数)
来源:互联网 发布:加强网络舆情管控工作 编辑:程序博客网 时间:2024/04/26 01:15
1011.盒子与球
Description
现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。则有多少
种放法?
n, r(0 <= n, r <= 10)。
有多少种放法。
3 2
Sample Output
6
当时刚入坑的时候SDNU前面一道一直没能A的题.....看题意就是数学里面排列组合的问题= =表示高中时候对这概念一直很混乱,所以该怎么做一直没找到方法,现在又把这个题翻了出来直接百度了下,有一个第二类stirling数,是说将n个不同的球放到k个相同的盒子,每个盒子不为空,共有S(n,k)种方法,这个就是第二类stirling数。而这个题目是有r个互不相同的盒子,所以最后用第二类stirling数算出来后还要乘以r的阶乘。因为这题数据比较小,只是到10而已,所以先打个表然后需要哪个输出哪个就好了。
下面AC代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int dp[15][15];int SecondStringData(){ int i,j; memset(dp,0,sizeof(dp)); for(i=1;i<12;i++) { dp[1][i]=0; dp[i][1]=1; } for(i=2;i<12;i++) { for(j=1;j<=i;j++) { dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j; } } return 0;}int main(){ int i; int t; int n,r; SecondStringData(); while(scanf("%d%d",&n,&r)!=EOF) { t=1; for(i=1;i<=r;i++) { t=i*t; } cout<<dp[n][r]*t<<endl; } return 0;}
0 0
- SDNU 1011.盒子与球 第二类stirling数(组合数)
- SDNU 1011(第二类stirling数)
- SDNU1011 盒子与球【第二类Stirling数模板】
- 第一类Stirling 数 与 第二类Stirling 数
- 第二类Stirling数
- 第二类Stirling数
- 第二类Stirling数
- [组合数学] 第一类,第二类Stirling数,Bell数
- [组合数学] 第一类,第二类Stirling数,Bell数
- [ACM] FZU 1570 集合划分问题( 不同小球放入相同盒子,第二类Stirling数)
- HDU 6143 Killer Names(组合数+第二类Stirling数)
- HDU 6143 Killer Names 组合数+(容斥/第二类Stirling数)
- (组合数学)Stirling 数
- 山东省第五届ACM大学生程序设计竞赛-Hearthstone II(组合数学-第二类Stirling数)
- hdu-4045-Machine scheduling-组合数学(插板+第二类Stirling数)
- 【笔记】第一类Stirling数和第二类Stirling数
- 第一类Stirling数和第二类Stirling数
- 第一类stirling数和第二类stirling数
- 两个大的整数相加
- C#中Socket通信编程的同步实现
- 上传视频
- 做登录的一些注意事项(以java为例)
- 值得推荐的C/C++框架和库 (真的很强大)
- SDNU 1011.盒子与球 第二类stirling数(组合数)
- hdu 5727 Necklace 全排列+二分图
- eclipse常用快捷键 数组创建 冒泡排序
- NOIP初赛准备:第二课时
- 通过友元实现输入输出的重载
- 建站流程
- PHP中常用的三种设计模式
- 从零开始学_JavaScript_系列(30)——NodeList
- 状态压缩DP 与 树状DP