描述:

为解救可怜的武内崇老师,saber、远坂、爱尔奎特、希耶尔等人组成了第六科急救队!最终,由琥珀开发出了禁药,分身光线(这药是内服还是外用的= =?),将爱尔奎特批量化生产,来对月世界进行全面的地毯式搜索。

现已知,第六科共有m个复制人(每个复制人完全一样),月世界有n个城市,每个城市会被一个复制人搜索一遍。问:共有多少种分配方法。(根据时空管理局劳务法更定,每个复制人又要分得工作。)

Input

每一行有一个m和n(1<=m<n<1000)

Output

每一行输出一个可能的个数(模10007取余)

Sample Input

2 4
1 5

Sample Output

7
1

解题思路:

这其实是求第二类斯特林数。{n,k}表示将有n件物品的集合划分成k个非空子集的方法数,显然{n,1}=1,{n,n} = 1,{n,0} = 0,并有以下递归式:

{n,k} = k{n-1,k}+{n-1,k-1}, n>0

解释:给定一个有n个元素的集合,要把它分成k个非空的部分,我们或者将最后元素单独放入一类(用{n-1,k-1}种方式),或者把它与前n-1个元素的某个非空子集放在一起。在后一种情况下,有k{n-1,k}种可能性,因为把前面n-1个元素分成k个非空部分{n-1,k}种方法的每一种都给出k个子集。

最后有一点要说明的是,虽然题目是n<1000,但实际提交发现其实是包括1000的,因为这种原因纠结了好长时间 。

#include <iostream>
using namespace std;
const int N = 1001;
int stirling[N][N];
int getStirling(int n,int k)
{if(stirling[n][k]!=-1)return stirling[n][k];elsestirling[n][k] = (k*getStirling(n-1,k)+getStirling(n-1,k-1))%10007;return stirling[n][k];
}int main()
{for(int i=0;i<N;++i)for(int j=i;j<N;++j)stirling[j][i] = -1;for(int i=1;i<N;++i){stirling[i][1] = 1;stirling[i][i] = 1;}int m,n;while(cin>>m>>n){cout<<getStirling(n,m)<<endl;}return 0;
}

最后欢迎大家访问我的个人网站: 1024s

XDOJ1145--组合数学四之Carnival Phantasm相关推荐

  1. 【组合数学】递推方程 ( 常系数线性非齐次递推方程 的 非齐次部分是 多项式 与 指数 组合方式 | 通解的四种情况 )

    文章目录 一.常系数线性非齐次递推方程 的 非齐次部分是 多项式 与 指数 组合方式 二.递推方程通解的四种情况 一.常系数线性非齐次递推方程 的 非齐次部分是 多项式 与 指数 组合方式 如果 &q ...

  2. 组合数学之排列组合(Permutations and Combinations)(四种情况)

    加减乘除四个原理不再赘述.(即使小学生都会的原理也能出些大学生不会的题目) 1集合的排列(Pertutations of Sets)(无重有序)(无重复有序) 设r为正整数,把n个元素的集合S的一个r ...

  3. 第十四届华中科技大学程序设计竞赛 B Beautiful Trees Cutting【组合数学/费马小定理求逆元/快速幂】...

    链接:https://www.nowcoder.com/acm/contest/106/B 来源:牛客网题目描述 It's universally acknowledged that there're ...

  4. 牛客练习赛61 C 四个选项 dp\搜索+组合数学

    https://ac.nowcoder.com/acm/contest/5026/C 思路一:dpdpdp,首先通过并查集处理出所有的连通块(限制条件),然后用dpi,x,y,z,wdp_{i,x,y ...

  5. 组合数学(四)生成排列和组合

    文章目录 全排列的生成 序数法 字典序法 回溯法 插入法 JohnsonTrott算法(换位法) 全排列的生成 利用LeetCode46题全排列来验证一下是否正确 序数法 这个方法把n!个排列与0n! ...

  6. 【组合数学】指数生成函数 ( 指数生成函数求解多重集排列示例 )

    文章目录 一.指数生成函数求解多重集排列示例 参考博客 : 按照顺序看 [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | 与二项式系数相关 ...

  7. 【组合数学】指数生成函数 ( 指数生成函数性质 | 指数生成函数求解多重集排列 )

    文章目录 一.指数生成函数性质 二.指数生成函数求解多重集排列 参考博客 : 按照顺序看 [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | ...

  8. 【组合数学】生成函数 ( 正整数拆分 | 重复有序拆分 | 不重复有序拆分 | 重复有序拆分方案数证明 )

    文章目录 一.重复有序拆分 二.不重复有序拆分 1.无序拆分基本模型 2.全排列 三.重复有序拆分方案数证明 参考博客 : 按照顺序看 [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式 ...

  9. 【组合数学】计数模型、常见组合数与组合恒等式 ★★

    文章目录 一.计数模型 二.常见的组合计数 一.计数模型 当前涉及到的计数模型 : 1 . 选取问题 : nnn 元集 SSS , 从 SSS 集合中选取 rrr 个元素 ; 根据 元素是否允许重复 ...

最新文章

  1. Python 初学者常犯的5个错误,布尔型竟是整型的子类
  2. 为什么很多技术合伙人参与创业时会先谈钱?
  3. SVG(H5可缩放的矢量图形)
  4. java es 5.0.1_es.5.1.1启动失败
  5. LightOJ 1030 Discovering Gold(期望 概率)
  6. 独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?
  7. 使用CallableStatement处理Oracle数据库的存储过程
  8. 云图说|应用魔方AppCube:揭秘码农防脱神器
  9. mybatis sql不等于
  10. oracle最新时间查询,Oracle的日期时间范围查询
  11. 专题一 关于Windows10安装问题
  12. 智能陈桥输入法软件测试,智能陈桥拼音输入法
  13. 国产处理器的逆袭机会——RISC-V
  14. 利用Madmom识别和弦
  15. 微信支付中xml和map互转
  16. 非因推荐 | 肿瘤微环境研究大剖析——肿瘤相关巨噬细胞
  17. Linux下的启动oracle服务 启动监听 开放端口操作
  18. python关键字参数必须位于位置参数之前_python关键字参数和位置参数
  19. java springboot房地产信息管理系统+实训报告+PPT+功能需求报告
  20. linux驱动tft屏幕,Linux2.6.26.5加入TFT-LCD驱动

热门文章

  1. 0x8002801D:库没有注册
  2. Vue电商项目-商品飞入购物车特效实现
  3. 微信小程序云开发博客系统源代码,让写博客像发朋友圈一样简单,含使用部署教程
  4. 如何将RGBA 4波段栅格转换为RGB 3波段?分别用ArcGIS及Qgis实现
  5. STM32编程(一)STM32 GPIO配置的4大步骤
  6. 青海这个不起眼的小镇,竟藏着一个千万千瓦级光伏发电基地
  7. 微信小程序—for循环包括自定义for循环中的item和index(图文)
  8. android,做游戏,20几岁 20多岁
  9. docker搭建RTMP直播流服务器与流管理
  10. Android开发5年,分享下初级 中级 高级工程师 划分标准