0804 OpenJ#7215 简单的整数划分问题
来源:互联网 发布:淘宝买家怎么实名认证 编辑:程序博客网 时间:2024/05/20 18:00
摘要:递归使用中将问题化为更小的同类子问题
原题目链接:简单的整数划分问题
描述
将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。
正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。
输入 标准的输入包含若干组测试数据。每组测试数据是一个整数N(0 < N <= 50)。 输出 对于每组测试数据,输出N的划分数。 样例输入 5
样例输出 7
提示 5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1
来源: http://cxsjsxmooc.openjudge.cn/2017t2summerw3/2/
将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。
正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。
5
7
来源: http://cxsjsxmooc.openjudge.cn/2017t2summerw3/2/
题目理解:递归中的化为更小问题的表现在递归方法的总体思想是将待求解问题的解看作输入变量 x 的函数 f(x),通过寻找函数 g,使得 f(x) = g(f(x-1)),并且已知 f(0)的值,就可以通过 f(0)和 g 求出 f(x)的值。这样一个思想也可以推广到多个输入变量 x,y,z 等,x-1 也可以推广到 x - x1,只要递归朝着出口的方向走就可以了 。
本题的类型转化同一个叫做放苹果的题目,本题求n的m个数划分记为f(n,m) 对于n与m的关系就可以转换问题到更小的规模,当n>=m时 和f(n-m,m)+f(n,m-1)是一样的(及假设各个数不为0那么把他们全部减一效果是一样的,另外就是至少有一个0,那么与m-1是一样的) n<m时 与f(n,n)是一样的。不断转化直到 n==0||m==0的情况。
注意:递归中储存了递归的结果,因此速度会比较快。不过要是要输出各个划分的话 可能又不好实现了。
日期:
2017 8 4
附加:
代码:
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <memory.h>using namespace std;int F[60][60];int f(int n,int m){if(F[n][m]==-1){if(n==0) return F[n][m]=1;if(m==0) return F[n][m]=0;if(n>=m){return F[n][m]=f(n-m,m)+f(n,m-1);}if(n<m){return F[n][m]=f(n,n);}}return F[n][m];}int main(){memset(F,-1,sizeof(F));int n;while(~scanf("%d",&n))printf("%d\n",f(n,n));return 0;}
阅读全文
0 0
- 0804 OpenJ#7215 简单的整数划分问题
- 0827 OpenJ#7219 复杂的整数划分问题
- OpenJudge 7215简单的整数划分问题
- 简单的整数划分问题
- 简单的整数划分问题
- 简单的整数划分问题
- 简单整数划分问题
- OJ 7215 简单的整数划分问题__动态规划
- openjudge 简单的整数划分问题
- OpenJudge_P7215 简单的整数划分问题(DP)
- OpenJudge 简单的整数划分问题(递归)
- openjudge 简单的整数划分问题
- MOOC 简单的整数划分问题
- 4117:简单的整数划分问题
- 简单的整数划分
- 整数划分的问题
- 整数的划分问题
- 整数的划分问题
- 算法基础
- C
- 阿里云幸运券领取,阿里云服务器全线云产品优惠
- 在女生湿透的衣服竟然会显示这样的体型 连继好几天的大旱,每逢晚上是不是都无法入眠,或总是深夜醒来背流行夹法的,就在前几晚上我们的小区经常没电,当时我还想这么个大城市,还会大晚上还会没电真让人
- 【跟着stackoverflow学Pandas】“Large data” work flows using pandas-pandas大数据处理流程
- 0804 OpenJ#7215 简单的整数划分问题
- A
- 酒客项目日志20170804
- html如何给文字添加背景底色
- 欢迎使用CSDN-markdown编辑器
- [PKU暑课笔记] 广度优先搜索BFS POJ3278抓住那头牛 POJ3984迷宫问题
- HDU 1709 The Balance(母函数)
- BZOJ 2005: [Noi2010]能量采集(莫比乌斯反演)
- opencv实现图片与视频中的人脸检测