题目描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

输入描述:

每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

输出描述:

对输入的每组数据M和N,用一行输出相应的K。

输入

7 3

输出

8
#include<iostream>
using namespace std;
int solve(int m,int n){if(m<0)return 0;//注意此处m==0处应返回1,对应于上层递归m==n,此时有一种方法if(m==0||n==1||m==1)return 1;elsereturn solve(m,n-1)+solve(m-n,n);
}
int main(){int m,n;while(scanf("%d %d",&m,&n)!=EOF){cout<<solve(m,n)<<endl;}
}

第二种实现方法思路更为简单,从底向上开始递归,思路较为清晰

#include<iostream>
using namespace std;
int m,p,ans;
void solve(int n,int s,int c){if(c>p)return;if(n>m)return;if(n==m){ans++;return;}for(int i=s;i<=m;i++){if(i+n<=m){solve(i+n,i,c+1);}}}
int main(){int n;while(cin>>n){for(int i=0;i<n;i++){cin>>m>>p;ans=0;//注意此处应从1开始算起而不是从0开始for(int i=1;i<=m;i++){solve(i,i,1);}cout<<ans<<endl;}}
}

放苹果--C++实现相关推荐

  1. 43.放苹果(递归练习)

    放苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分 ...

  2. POJ-1664 放苹果

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21021   Accepted: 13395 Description ...

  3. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  4. poj 1664 放苹果 DPDFS

    点击打开链接 把 M个同样的苹果放在 N个同样的盘子里,允许有的盘子空着不放 问共有多少种方法?5,1,1和1,5,1是同一种方法 解法一: poj 1664 放苹果 DP dp[i][j]表示共 i ...

  5. poj1664(放苹果)

    题目链接:http://poj.org/problem?id=1664 关于放苹果的那些事.......... 今天偶然看到一个关于整数划分的算法, 仔细看了后,我想到了放苹果的事,其实这个问题困扰了 ...

  6. poj 1664 放苹果【M的N划分】

                                                   放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不 ...

  7. 2.3 基本算法之递归变递推 放苹果 python

    http://noi.openjudge.cn/ch0203/666/ """ 2.3 基本算法之递归变递推 666 放苹果 http://noi.openjudge.c ...

  8. P2386 放苹果 方法一

    http://noi.openjudge.cn/ch0203/666/ /* 2.3基本算法之递归变递推_666放苹果 方法一 http://noi.openjudge.cn/ch0203/666/1 ...

  9. 信息学奥赛一本通(1222:放苹果)

    1222:放苹果 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 8383     通过数: 5465 [题目描述] 把M个同样的苹果放在N个同样的盘子里,允许有的 ...

  10. 信息学奥赛一本通(1206:放苹果)

    1206:放苹果 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 11298     通过数: 7165 [题目描述] 把M个同样的苹果放在N个同样的盘子里,允许有 ...

最新文章

  1. AIoT开放平台及应用
  2. 51NOD 1287 加农炮(不水的线段树)
  3. 2021清北毕业生去向关键词:进体制、搞教育、国内深造
  4. boost原理与sklearn源码_机器学习sklearn系列之决策树
  5. js组装知识(待续……)
  6. ruby imap抓取inbox中所有邮件的主题
  7. java后台返回html_SpringMvc返回html页面字符串
  8. 简单说 !![]==true 与 []==true 引发的思考
  9. ArcGis for JavaScript 4.23版本接入国家天地矢量地图
  10. matlab仿真界面设计,基于MATLAB图形用户界面GUI的电路仿真实验的制作
  11. 百度离线地图瓦片下载器
  12. JS正则——将字符串中的逗号替换成空格
  13. Android利用zxing生成二维码
  14. Linux 设备驱动
  15. 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows
  16. WinCC控件之ShockwaveFlash
  17. 解决安卓App启动页面会闪一下
  18. codeforces 514B
  19. html在背景图里加白框,8款低脂少油的家常菜(附图)*
  20. 移动办公通用解决方案

热门文章

  1. squeezenet论文详解
  2. 7寸安卓通用车载导航
  3. Jest 单元测试 enzyme 报错信息:When using mount: Cannot read prop
  4. 记录一位社招面试腾讯成功拿到offer的面试内容及收集的答案(上)
  5. C++设计模式18:备忘录模式
  6. 交易系统开发技能及面试之无锁编程(Lock-free)
  7. 千年老二 1376 set容器简单使用
  8. oracle忘记了用户名和口令解决方案
  9. 木木的Java知识整理——JDBC与MyBatis的区别
  10. 618前夕看京东IT基础设施建设与无人机物流规划