这一题实际上是组合数学里面的经典问题,跟第二类Stirling数有些相似。可以把一个数值为n的数看成n个小球,划分的份数k看作是k个盒子,那么本题的要求就是:

将n个小球放到k个盒子中,小球之间与盒子之间没有区别,并且最后的结果不允许空盒

与第二类Stirling数的递推公式的推导过程相似:

将n个小球放到k个盒子中的情况总数 =

1. 至少有一个盒子只有一个小球的情况数

+

2. 没有一个盒子只有一个小球的情况数

这样进行划分的原因是这种分类足够特殊,1和2都有可以写出来的表达式:

1. 因为盒子不加区分,那么1的情况数与“将n-1个小球放到k-1个盒子中”的情况数一样

2. 没有一个盒子只有一个小球,那么把每个盒子中拿出来一个小球,对应的是“把(n-k)个小球放到k个盒子中的情况数”

至于1和2中的两种等价关系为什么成立,可以用集合A=集合B的方式去证明

最后将上面的叙述转化为dp的表达形式:

f[n][k]代表将n个小球放到k个盒子中且没有空盒的情况,那么

f[n][k] = f[n-1][k-1] + f[n-k][k]

这道题说是dp,其实就是递推

代码:

varf:array[0..1000,0..1000] of longint;m,n,i,j,k,l,ans:longint;beginreadln(n,k);for i:=1 to n dofor j:=1 to i dobeginf[i][j]:=f[i-j][j]+f[i-1][j-1];if (i=1) and (j=1) then f[i][j]:=1;end;writeln(f[n,k]);end.

喜欢就收藏一下,vic私人qq:1064864324,加我一起讨论问题,一起进步^-^

转载于:https://www.cnblogs.com/victorslave/p/4817687.html

[codevs1039]数的划分相关推荐

  1. 2001年 数的划分

    数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序). 例如:n=7,k=3,下面三种划分方案被认为是相同的. 1 1 5 1 5 1 5 1 1 问有多少种不 ...

  2. ALGO-22 数的划分(DFS,经典剪枝)

    ALGO-22 数的划分 时间限制: 1 Sec 内存限制: 128 MB 题目描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同 ...

  3. 【DP】数的划分(ybtoj DP-1-3)

    数的划分 ybtoj DP-1-1 题目大意 给你一个n,让你分成k份,问有多少种分法(1,2和2,1为同一种) 输入样例 7 3 输出样例 4 样例解释 四种分法为:1,1,5;1,2,4;1,3, ...

  4. 算法训练 数的划分 动态规划

    算法训练 数的划分 时间限制:1.0s   内存限制:256.0MB 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. ...

  5. 2021上海高考小三门成绩查询,2021上海高考等级考分数怎么划分等级的

    上海新高考3+3模式,与从前相比新增了一个等级考的概念.那么很多考生不知道上海高考等级考分数怎么划分等级的,下面一起带大家来看看. 关于等级考 改革之后的上海高考,统一考试的科目为: 大三门:语文.数 ...

  6. 蓝桥杯算法训练合集八 1.数的划分2.求先序排列3.平方计算4.三角形高5.单词复数

    目录 1.数的划分 2.求先序排列 3.平方计算 4.三角形高 5.单词复数 1.数的划分 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种 ...

  7. noi.openjudge_P8787数的划分

    题目: 8787:数的划分 总时间限制: 1000ms 内存限制: 65536kB 描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序).例如:n=7,k=3,下面三种分法被认为是相 ...

  8. 【NOIP2001】【codevs1039】数的划分

    problem solution codes //step1:把n个苹果放到m个盘子里,不允许有空盘.等价于每个盘子放一个苹果先允许有空盘 //step2:f[i][j]表示i个苹果j个盘子的放法数目 ...

  9. 【集合论】Stirling 子集数 ( 斯特林子集数概念 | 放球模型 | Stirling 子集数递推公式 | 划分的二元关系 加细关系 )

    文章目录 一.Stirling 子集数 二.放球模型 三.Stirling 子集数递推公式 四.Stirling 子集数示例 ( 四元集等价关系个数 ) 五.划分的二元关系 加细关系 一.Stirli ...

最新文章

  1. 警惕!国内某广告SDK内置“后门”功能,Google Play商店已强制下架
  2. 111.二叉树的最小深度
  3. FPGA逻辑设计回顾(6)多比特信号的CDC处理方式之异步FIFO
  4. k8s中几种port介绍
  5. 2048(lj模拟)
  6. Windbg教程-调试非托管程序的基本命令中
  7. chmod 777 修改权限
  8. Qt:Windows编程—Qt实现本地服务管理
  9. 信息学奥赛C++语言:平方值
  10. 磕头如捣的拼音及解释
  11. github速成手册
  12. 排序算法——直接选择排序
  13. 通达信 移动平均算法_财富趋势,它的产品叫通达信
  14. 基于python的词频分析
  15. Windows下的hiberfil.sys文件及其作用
  16. Office 2010 word无法创建工作文件 请检查临时环境变量
  17. 怎样做一个软件项目经理? ----写给公司全部的开发者
  18. 从零到大神,135排版训练营给你实实在在的排版!
  19. 计算机操作系统的加密与恢复,当在 Windows中设置 FIPS 兼容策略时,BitLocker 的恢复密码Windows...
  20. 【C++基础知识】常成员函数,常引用

热门文章

  1. 【CodeForces - 260C】Balls and Boxes (思维模拟,有坑,时光倒流)
  2. 【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)
  3. 【CodeForces - 124D】Squares (旋转坐标系,计算几何,思维)
  4. Apollo进阶课程 ① | 带你纵览无人车
  5. java中实现线程互斥的关键词_简单的互斥同步方式——synchronized关键字详解
  6. 命运2服务器维护时间2019,《命运2》今晚将停机维护 为多平台共用存档做准备...
  7. 《盘点那些秀你一脸的秒天秒地算法》(4)
  8. 《Head First设计模式》第七章-适配器模式、外观模式
  9. nginx代理配置根据ip地址来转发到不同的地址端口
  10. 大数据学习(0)-大数据知识框图