题目链接:点击查看

题目大意:将整数 n 分成 k 份有多少种分法

题目分析:设 dp[ i ][ j ] 为将整数 i 分成 j 份的方案数,拆分整数可以等价为放小球,相当于将 n 个小球放进 k 个盒子,最后必须保证没有空盒子的方案数,则可以其转换为两个子问题之和:

  1. 至少存在着一个盒子只有一个小球的方案数
  2. 所有盒子中的小球都大于一的方案数

上述情况一等价于 dp[ i - 1 ][ j - 1 ],而上述情况二等价于,从每个盒子中都取出一个小球,最后将 i - j 个小球放入 j 个小球的方案数,也就是 dp[ i - j ][ j ]

所以 dp[ i ][ j ] = dp[ i - 1 ][ j - 1 ] + dp[ i - j ][ j ]

初始化的话,显然 dp[ i ][ 1 ] = 1,因为如果只有一个盒子的话,显然只有一种方法

代码:

//#pragma GCC optimize(2)
//#pragma GCC optimize("Ofast","inline","-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
#include<bitset>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=210;LL dp[N][N];int main()
{
#ifndef ONLINE_JUDGE
//  freopen("data.in.txt","r",stdin);
//  freopen("data.out.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)dp[i][1]=1;for(int i=2;i<=n;i++)for(int j=2;j<=m;j++)dp[i][j]=dp[i-1][j-1]+dp[i-j][j];printf("%lld\n",dp[n][m]);return 0;
}

洛谷 - P1025 数的划分(计数dp)相关推荐

  1. 洛谷 - P1025 数的划分(dfs)

    题目链接:点击查看 题目大意:给出两个数n和k,要求将n分成k份,问有多少种方案数,注意: 1 1 5和1 5 1还有5 1 1算同一种方案 题目分析:因为n只给到了200,并且k最大为6,所以直接d ...

  2. 洛谷——P1025 数的划分

    https://www.luogu.org/problem/show?pid=1025 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分 ...

  3. 洛谷 - P2051 [AHOI2009]中国象棋(计数dp)

    题目链接:点击查看 题目大意:给出一个 n * m 的棋盘,可以在任意位置放置 "炮",问一共可以放置多少种可行的方案 题目分析:转换题意,就是问每一行.每一列至多有两个棋子的方案 ...

  4. 洛谷 - P1028 数的计算(线性dp)

    题目链接:点击查看 题目大意:现在给出一个自然数n,我们规定三种操作: 不做任何处理 在他左边加上一个自然数,但该数不能超过原数的一半 加上该数后,继续按此规则进行处理,直到不能再加自然数为止 举个例 ...

  5. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  6. 洛谷P3939 数颜色 vector乱搞

    洛谷P3939 数颜色 标签 vector乱搞 简明题意 给一个序列(n <= 3e5),现需要你支持两种操作. 询问区间[L,R]中有多少个值为x的数 交换第k和k+1个数 思路 首先,这题需 ...

  7. *【洛谷 - P1025】数的划分(dfs 或 dp 或 母函数,第二类斯特林数Stirling)

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

  8. 洛谷 P3205 [HNOI2010]合唱队(区间dp)

     题目链接: [HNOI2010]合唱队 - 洛谷https://www.luogu.com.cn/problem/P3205  思路: 这题我是看了题解才做出来的,贴一下这位大佬的博客题解 P320 ...

  9. 洛谷P4322 最佳团伙(树上dp)

    题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人,这些候选人从 1 到 N 编号.方便起见,JYY 的编号是 0 号.每个候选人都由一位编号比他小的候选人Ri推荐.如果 Ri ...

最新文章

  1. 算法设计与分析第2章 递归与分治策略
  2. 日常make 的小技巧
  3. [zz]Ubuntu建立本地源实用案例
  4. WPF/Silverlight Layout 系统概述——Measure(转)
  5. 计算机一级怎么描述,计算机一级「关于RGB正确的描述的是」相关单选题
  6. GZIP pre-compression
  7. Qt学习笔记-OpenGL做正方体并旋转
  8. python小数点进位小学数学_python小数的进位与舍去的介绍(附代码)
  9. c#和python_C#学习笔记(与Java、C、C++和Python对比)
  10. 苹果官网html简单代码,苹果官网CSS3应用案例分析
  11. html页面旋转图标或标签
  12. 计算机误删恢复软件,电脑误删文件恢复软件_手机数据恢复工具-万能数据恢复大师...
  13. ARM嵌入式体系结构与接口技术
  14. Android 长按3Dtouch快捷方式
  15. 驾考计算机播报原理,科目三电子路考流程详解 考驾照的都看看!
  16. wsl2 ping不通windows主机问题速查
  17. 团队从小到大,再到体验团队
  18. python实现数组的全组合以及全排列
  19. 01 数学软件与建模---基础
  20. 如何规划和选择数据库服务器:CPU、内存、磁盘、网络(转)

热门文章

  1. MySQL联合查询介绍
  2. Nginx的index指令
  3. ArrayBlockingQueue原理分析
  4. Condition.doSignal
  5. 手写自己的MyBatis框架-语句执行处理
  6. Spring-Cloud中的 熔断、限流、降级
  7. Redis高可用方案-公私混合云
  8. 工程搭建:搭建子工程之搭建实体类模块和lombok插件
  9. python try语句各种格式输出_python如何写try语句
  10. 提高调试.net cf程序效率一些技巧