Description

现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。则有多少种放法?

Input

n, r(0 <= n, r <= 10)。

Output

有多少种放法。

Sample Input

3 2

Sample Output

6

Source

SDNU ACM-ICPC 2010复赛(2010级)
思路:这道题用的是斯特林函数。
第一类斯特林函数:将 n 个不同元素构成m个圆排列,如果要将n + 1个元素构成m个圆排列,考虑第n + 1个元素:
                            (1)如果n个元素构成m - 1个圆排列,则第n + 1个元素独自构成一个圆排列:s(n, m - 1);
                            (2)如果n个元素构成m个圆排列,则第n + 1个元素插入任意元素的左边:n * s(n, m);
                              总和s(n + 1, m) = s(n, m - 1) + n * s(n, m)。
第二类斯特林函数:将n个不同的球放入m个无差别的盒子中,要求盒子非空,考虑第n + 1个元素:
                            (1)如果n个元素构成m - 1个集合,则第n + 1个元素就构成单独一个集合:s(n, m - 1);
                            (2)如果n个元素构成m个集合,则第n + 1个元素就查到任意一个集合:m * s(n, m);
                              总和s(n + 1, m) = s(n, m - 1) + m * s(n, m)。
但是题目要求是r个不同的盒子,r个不同盒子的排列就是 r!,所以最后的答案应该乘以r的阶乘。
#include<bits/stdc++.h>
using namespace std;#define ll long long
#define eps 1e-9const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 100000 + 8;int a[18][18];int main()
{int n, r, sum = 1;memset(a, 0, sizeof(a));scanf("%d%d", &n, &r);a[1][1] = 1;for(int i = 2; i <= n; i++){for(int j = 1; j <= r; j++){a[i][j] = a[i - 1][j - 1] + a[i - 1][j] * j;}}for(int i = 1; i <= r; i++)sum *= i;printf("%d\n", sum * a[n][r]);return 0;
}

转载于:https://www.cnblogs.com/RootVount/p/11418879.html

SDNU 1011.盒子与球(斯特林函数)相关推荐

  1. SDNU 1011.盒子与球

    SDNU 1011.盒子与球 Time Limit: 1000 MS Memory Limit: 32768 KB Total Submission(s): 885 Accepted Submissi ...

  2. P1287 盒子与球(python3实现)

    盒子与球 - 洛谷 """P1287 盒子与球 https://www.luogu.com.cn/problem/P1287"""def f ...

  3. P1287 盒子与球题解【python】

    文章目录 盒子与球 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 样例输入输出 1 解释 数据规模与约定 思路 code 盒子与球 题目描述 现有 r r r 个互不 ...

  4. P1287 盒子与球

    题目描述 现有 rr 个互不相同的盒子和 nn 个互不相同的球,要将这 nn 个球放入 rr 个盒子中,且不允许有空盒子.请求出有多少种不同的放法. 两种放法不同当且仅当存在一个球使得该球在两种放法中 ...

  5. 排列组合与盒子放球问题

    文章目录 排列组合 定义 组合公式 1.证明 C n m = C n n − m C_n^m=C_n^{n-m} Cnm​=Cnn−m​ 2.证明 C n m C m k = C n k C n − ...

  6. 洛谷P1287 盒子与球

    题目描述 现有 rr 个互不相同的盒子和 nn 个互不相同的球,要将这 nn 个球放入 rr 个盒子中,且不允许有空盒子.请求出有多少种不同的放法. 两种放法不同当且仅当存在一个球使得该球在两种放法中 ...

  7. 【MATLAB】sphere 球曲面函数详解

    官方文档 画个球瞅瞅 直接看坐标 官方文档 首先看一下 sphere 的官方文档 sphere % sphere 函数用于生成单位球面的 x,y,z 的坐标,以用于 surf or mesh.默认生成 ...

  8. 信奥中的数学:斯特林数、卡特兰数

    P1287 盒子与球(球不同 盒不同 不允许有空盒) 盒子与球 - 洛谷 第二类斯特林数总结 第二类斯特林数总结 - _zjz 的博客 - 洛谷博客 P4091 [HEOI2016/TJOI2016] ...

  9. 排列组合问题 “n个球放入m个盒子(8种)”

    1.球相同,盒相同,允许空箱 2.球相同,盒相同,无空箱 3.球相同,盒不同,无空箱 4.球相同,盒不同,允许空箱 5.球不同,盒相同,无空箱 6.球不同,盒相同,允许空箱 7.球不同,盒不同,无空箱 ...

最新文章

  1. mysql 触发器_进阶msql触发器-指南
  2. [USACO1.2]挤牛奶Milking Cows
  3. Django框架(1.Django框架的简介)
  4. Win10环境下,word2016嵌入mathtype出现灰色的解决办法
  5. 安装mariadb、安装Apache
  6. Java Package getPackage()方法与示例
  7. linux 应用程序 死锁,程序死锁了
  8. TestStand-创建VI
  9. php敏感代码屏蔽,PHP敏感词汇屏蔽或替换
  10. 上海计算机科学大学排名,2019上海软科世界一流学科排名计算机科学与工程专业排名卡耐基梅隆大学排名第4...
  11. Ubuntu 20.04安装velodyne_simulator
  12. Java时间格式化工具类大全_二
  13. Person ReID最新论文推荐
  14. android无线充电器推荐,和安卓通用的无线充电器门派推荐
  15. mysql导入txt_mysql怎么导入txt文件?
  16. 关于校外访问西安电子科技大学校内图书馆资源和教务系统等的方法总结
  17. sql的左连接,右连接,内连接
  18. fan_in / fan_out 的理解
  19. 随机森林提取Landsat8水体的样本制作
  20. centos进入救援模式并修复文件系统(7、8)

热门文章

  1. 第三章:Creating Utilities--27.增加一个本地词典
  2. [转载]当代中国建筑设计百家名院名单
  3. checkedListBox使用例子
  4. dealloc 的水,很深?
  5. 组件对象模型:COM
  6. BeanUtils.copyProperties
  7. 201671010406 丁家辉《英文文本统计分析》结对项目报告
  8. go---字符串截取
  9. Jmeter中一些概念的理解——90%响应时间、事务、并发
  10. DSP using MATLAB 示例Example3.1 3.2 3.3