递归和分治——整数划分问题
来源:互联网 发布:mac打开隐藏文件命令 编辑:程序博客网 时间:2024/06/06 08:59
q(n,m)表示最大加数不大于m的划分个数。
(1)q(n,1)=1,n>=1
(2)q(n,m)=q(n,n),m>=n
(3)q(n,n)=q(n,n-1)+1。正整数n的划分有n1=n的划分和n1<=n-1的划分组成
(4)q(n,m)=q(n,m-1)+q(n-m,m),n>m>1。正整数n的最大加数n1不大于m的划分由n1=m的划分和n1<=m-1的划分组成。
其中正整数的划分=q(n,n)
递归:
#include <iostream>#include <cstdio>#include <stack>#include <cstdlib>using namespace std;int divide(int n,int m){ if(n<1||m<1) return 0; if(n==1||m==1) return 1; if(n<m) return divide(n,n); if(n==m) return divide(n,n-1)+1; return divide(n,m-1)+divide(n-m,m);}int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { printf("%d\n",divide(n,m)); } return 0;}
阅读全文
0 0
- 递归和分治——整数划分问题
- 递归——整数划分问题
- 分治与递归策略_整数划分问题
- 递归分治算法之整数划分问题(Java版本)
- 11088 整数划分的扩展问题(递归,分治)
- 递归--整数划分问题
- 递归-整数划分问题
- 递归-整数划分问题
- 递归---整数划分问题
- 递归-整数划分问题
- 递归与分治之整数划分
- 递归与分治_整数的划分
- 整数划分 (递归、分治、动态规划)
- 算法笔记——【递归】整数划分问题
- 整数划分问题(递归算法)
- 整数划分问题 递归法
- 递归求解整数划分问题
- 整数划分问题 ----- 递归算法
- Binary Search:50. Pow(x, n)
- Android Studio : emulator is already running
- spring带给我们什么
- jdbctemplate中的select中in查询
- c++基础之头文件及#include的用法
- 递归和分治——整数划分问题
- Servlet——Tomcat
- JavaScript基础 函数
- 面向对象SOLID原则简介
- Vue.js
- 机器学习综述
- LINUX学习笔记(八)
- lambda表达式
- JavaScript类型转换的特殊用法