放苹果问题
来源:互联网 发布:罗素克劳 知乎 编辑:程序博客网 时间:2024/04/28 02:30
ACM 1664 放苹果
很典型的动态规划题
很好的算法:
f(m, n) = f(m-n, n) + f(m, n-1)
f(m, n): 把m个苹果放到n个盘子中的方法数
f(m, n-1): 把m个苹果放到n-1个盘子中的方法数(其中至少有一个空盘子)
f(m-n, n): 把m个苹果放到n个盘子中,而且每个盘子中都有苹果(先拿n个出来,等m-n个放好了,然后每个盘子放一个)
一定要牢记!!!#include <iostream>
#include <vector>
#include <string>
#include <math.h>
#include <iomanip>
#include <stdlib.h>
using namespace std;
int PlaceApple(int m, int n)
{
if(m < 0)
return 0;
if(m == 0) //每个盘子一个
return 1;
if(n == 1) //只有一个盘子
return 1;
return PlaceApple(m - n, n) + PlaceApple(m, n - 1);
}
int main()
{
int num,m,n;
cin>>num;
while (num>0)
{
cin>>m>>n;
cout<<PlaceApple(m,n)<<endl;
num--;
}
}
- 放苹果问题
- 放苹果问题
- 放苹果问题
- <实例>放苹果问题
- 北大-放苹果问题
- 放苹果 问题
- 放苹果问题
- 放苹果问题
- 放苹果问题
- 【DP】放苹果问题
- 递归-放苹果问题
- 放苹果问题
- POJ1664 放苹果【组合问题】
- 组合数学 - 放苹果问题
- 放苹果问题(递归)
- 放苹果问题的递推思路
- 从放苹果问题想到的
- 整数划分问题(放苹果)
- 简单socket编程实例
- [旧文] A simple makefile example
- PHP+MYSQL新闻系统开发之PHP100视频教程69
- [旧文] OpenGL Platform with GULT
- C# new 关键字 三种用法
- 放苹果问题
- 写在永丰项目结束之前
- +-X/对应的英文
- easyMule-VeryCD-src---VS2010调试笔记
- TraceSource Thread-safety
- XTU - 1097 SBB的烦恼
- 通过VC助手,增加代码颜色提示
- 如何将CString 转换为LPCSTR?
- 写代码其实和平时讲话差不多