题目描述
一个正整数可以划分为多个正整数的和,比如n=3时:
3;1+2;1+1+1;
共有三种划分方法。
给出一个正整数,问有多少种划分方法。

数据规模和约定
n< =100

输入
一个正整数n
输出
一个正整数,表示划分方案数
样例输入
3
样例输出
3
思路:这是算法书的一道基础分治题目,但是这个题单纯用分治应该会TLE。因为会重复计算很多次,因此我们采用记忆化搜索,DP应该也可以。判断条件如下:
dp[x][y]代表的是当前数为x,分裂的最大数值为y的情况数。
①x==0,不可能存在这种情况,返回0.
②如果当前情况已经经历过,就直接返回结果。
③如果当前数小于分裂的最大数,那么就按照当前数作为最大分裂数。
④最大分裂数为1的时候,只有一种情况。例如6=1+1+1+1+1+1.
⑤当前数=最大分裂数的时候,返回dfs(x,y-1)+1,+1的意思是6=6这种情况,剩下的情况就是最大分裂数为5的情况了。
⑥其余的情况就是dfs(x,y-1)+dfs(x-y,y)。当前数为x,但是最大分裂数为y-1.加上当前数为x-y,最大分裂数仍为y的情况和。

代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=1e2+10;
ll dp[maxx][maxx];
int n;inline ll dfs(int x,int y)
{if(x==0) return 0;if(dp[x][y]!=-1) return dp[x][y];if(x<y) return dfs(x,x);if(y==1) return dp[x][y]=1ll;if(x==y) return dp[x][y]=dfs(x,y-1)+1ll;return dp[x][y]=dfs(x,y-1)+dfs(x-y,y);
}
int main()
{scanf("%d",&n);memset(dp,-1,sizeof(dp));cout<<dfs(n,n)<<endl;return 0;
}

努力加油a啊,(o)/~

[蓝桥杯][算法提高VIP]数的划分(记忆化搜索)相关推荐

  1. [蓝桥杯][算法提高VIP]数的划分-dp

    题目描述 一个正整数可以划分为多个正整数的和,比如n=3时: 3:1+2:1+1+1: 共有三种划分方法. 给出一个正整数,问有多少种划分方法. 输入 一个正整数n 数据规模和约定 n< =10 ...

  2. [蓝桥杯][算法提高]和谐宿舍2(记忆化搜索)

    问题描述 我的某室友学过素描,墙上有n张他的作品.这些作品都是宽度为1,高度不定的矩形,从左到右排成一排,且底边在同一水平线上. 宿舍评比就要来了,为了及格,我们决定买不多于m块的矩形木板,把这些作品 ...

  3. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  4. [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  5. [蓝桥杯][算法提高VIP]夺宝奇兵-dp

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  6. [蓝桥杯][算法提高VIP]阮小二买彩票

    [蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...

  7. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  8. [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)

    题目描述 每天,巧克力在它的许多形式上被全世界数百万人分享.它是一个真正普遍的糖果,实际上在世界上每个国家都能得到. 你发现唯一比吃巧克力更好的事情是把它分享给朋友.不幸的是,你的朋友非常挑剔,有着不 ...

  9. [蓝桥杯][算法提高][vip] 阮小二买彩票

    蓝桥杯 ADV-66 算法提高 阮小二买彩票 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察 ...

最新文章

  1. matlab立方体投影,那些投影到三维的高维立方体,后来都怎么样了?(浅度好文)...
  2. Web Service 的工作原理
  3. VMware Vsphere4 资源分配与资源限制
  4. vue-router学习地址
  5. 机器人聊天软件c#_使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
  6. python快速获取多个列表的所有组合形式
  7. 流批一体生产应用!Bigo 实时计算平台建设实践
  8. erp开发模式_ERP的完整形式是什么?
  9. 将本地项目上传到码云(gitee)远程仓库
  10. php中对象传值方式,php实现对象传值方式的具体案例
  11. Qt DLL总结【二】-创建及调用QT的 DLL
  12. python 多进程 requests_python requests多进程不安全的场景
  13. 图像处理神经网络python_深度学习使用Python进行卷积神经网络的图像分类教程
  14. WP7备注(11)(页面跳转)
  15. Gym 100801D Distribution in Metagonia (数学思维题)
  16. 收集的一些:MAC苹果电脑安装vmware的序列号
  17. Matlab聚类分析(Kmeans)
  18. 中国十大会计师事务所排名公布!刚刚,中注协正式通知!
  19. 9.8 按钮button
  20. uniapp接入支付宝支付详细申请流程2021.6.1

热门文章

  1. 文件包含——apache日志文件包含shell(四)
  2. dede 模板 php sql,dedecms模板中使用{dede:sql=””}实现分页功能详解
  3. java表格更新javadb_Java解析excel表格(新)
  4. 如何知道交换机的缓存大小_网络基本功之细说交换机
  5. 编写程序定义一个有 10 个 int 型元素的数组,并以其在数组中的位置作为各元素的初值。
  6. 利用Qt元对象技术防止工厂模式下代码臃肿问题,QT 动态创建对象(第2种方法)
  7. android开发之Glide加载图片之url转bitmap的方法
  8. ios开发 静音键设置_合肥包河区:连夜设置三道拦水坝只为按下中考“静音键”...
  9. 使用BaseAdapter实现复杂的ListView
  10. 发现一个CentOS第三方源epel的仓库地址(repos.fedorapeople.org)