1664:Placing apples
总时间限制: 1000ms 内存限制: 65536kB
描述
We are going to place M same apples into N same plates.
There could be some empty plates.
How many methods do we have?
When we have 7 applesand 3 plates, the methods, (1, 5, 1) and (5, 1, 1) are the same.
输入
The first line is the number of test cases, t. 0<=t<=20
The next t lines are test cases containing two numbers, M and N. 1<=M, N<=10.
输出
Output the numbers of method in each test case in one line.
样例输入
1
7 3
样例输出
8

问题链接:Bailian1664 Placing apples
问题描述:(略)
问题分析
    这个问题的关键是递推函数。
m个苹果放在n个盘子中,那么定义函数为apple(m,n):
1.m=0,没有苹果,那么只有一种放法,即apple(0,n)=1
2.n=1,只有一个盘中,不论有或者无苹果,那么只有一种放法,apple(m,1)=1
3.n>m,和m个苹果放在m个盘子中是一样的,即apple(m,n)=apple(m,m)
4.m>=n,这时分为两种情况,一是所有盘子都有苹果,二是不是所有盘子都有苹果。不是所有盘子都有苹果和至少有一个盘子空着是一样的,即=apple(m,n-1)。所有盘子都有苹果,也就是至少每个盘子有一个苹果,m个苹果中的n个放在n个盘子中,剩下的m-n个苹果,这和m-n个苹果放在n个盘子中是是一样的,即=apple(m-n, n)。这时,apple(m,n)=apple(m-n, n)+apple(m,n-1)。
    本题采用记忆化递归的解法。
    这个题也可以用母函数来解,是一个母函数的裸题。
程序说明
    本题与参考链接是同一题,使用参考链接的程序提交就AC了。
参考链接:POJ1664 放苹果【递推+记忆化递归】
题记:朋友交多了,容易遇见熟人。

AC的C语言程序如下:

/* POJ1664 放苹果 */#include <stdio.h>
#include <string.h>#define N 10
int a[N + 1][N + 1];int apple(int m, int n)
{if(a[m][n])return a[m][n];else {if(m == 0 || n == 1)return a[m][n] = 1;else if(n > m)return a[m][n] = apple(m, m);elsereturn a[m][n] = apple(m - n, n) + apple(m, n - 1);}
}int main(void)
{memset(a, 0, sizeof(a));int t, m, n;scanf("%d", &t);while(t--) {scanf("%d%d", &m, &n);printf("%d\n", apple(m, n));}return 0;
}

Bailian1664 Placing apples【递推+记忆化递归】相关推荐

  1. POJ1664 放苹果【递推+记忆化递归】

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

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

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

  3. HDU2018 母牛的故事【递推+记忆化递归】

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  4. 爬楼梯与路径类题目记忆化递归与动态规划双解法(Leetcode题解-Python语言)

    70. 爬楼梯(剑指 Offer 10- II. 青蛙跳台阶问题) 递归(英语:Recursion),是指在函数的定义中使用函数自身的方法.有意义的递归通常会把问题分解成规模缩小的同类子问题,当子问题 ...

  5. HDU2569 彼岸【打表+记忆化递归】

    彼岸 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  6. Bailian4117 简单的整数划分问题【整数划分+记忆化递归】

    4117:简单的整数划分问题 总时间限制: 100ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=n ...

  7. JSK-4 简单斐波那契【基础+打表+记忆化递归】

    简单斐波那契 斐波那契数列是一种非常有意思的数列,由 0 和 1 开始,之后的斐波那契系数就由之前的两数相加.用数学公式定义斐波那契数列则可以看成如下形式: F0=0 F1=1 Fn=Fn−1​+Fn ...

  8. Bailian2753 菲波那契数列(POJ NOI0202-1755)【数列+记忆化递归】

    问题链接:POJ NOI0202-1755 菲波那契数列. 菲波那契数列 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下 ...

  9. [剑指offer][JAVA]面试题第[10-1]题[斐波那契数列][动态规划][记忆化递归]

    [问题描述][中等] 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下:F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N ...

最新文章

  1. SO_REUSEADDR和SO_REUSEPORT
  2. 3m格式的文件怎么转换成mp3_一招就能让PDF与其他格式文件相互转换,这样的大招你值得拥有...
  3. RECT JS 由浅入深
  4. BOSS直聘发起“逆行者先行”招聘专场:优先录取抗疫志愿者
  5. 组件的data属性 (有别于Vue实例的data属性)
  6. matlab里的svmtrain的输出model里,各参数的含义
  7. flush table mysql_MySQL flush table 导致的锁问题
  8. 矩张量计算 matlab,用来计算广义相对论常用张量计算的Matlab程序
  9. ubuntu 刷新频率 如何查看_ubuntu如何调整显示的分辨率和刷新率?
  10. mac 爱普生打印机驱动_EPSON 打印机软件
  11. 从零开始写一个武侠冒险游戏-4-第一次整合
  12. Java 和python多态区别_python面向对象之多态鸭子类型与Java的比较
  13. 如何下载VMWare虚拟机如何安装VMWare详细教程
  14. ThinkPHP 模板变量输出
  15. 三大跨境电商平台开店必备的材料
  16. MySQL create database 新建utf-8/utf8mb4编码 数据库
  17. iOS开发可以调节屏幕亮度并且上传APPstore
  18. html网站设计基础
  19. 安卓10不支持qmc解码_魅族官宣内测安卓10 数十款机型支持和四大亮点加持
  20. python中爬虫隐藏身份的设置

热门文章

  1. 想做个可以打印的服务,想用printdocument,但是不用winform,有谁知道怎么实现吗?万分感谢!
  2. 华为云对象存储obs文件上传
  3. PhotoShop学习篇
  4. 入门3D游戏建模,有哪些建模软件可以选择?
  5. 计算机硬件希沃课件,希沃课件怎么转为ppt?
  6. Lua:小数精度计算,几位数判断,四舍五入,最靠近5倍数取整
  7. 错误: 找不到或无法加载主类 com.sxt.ceshi.Demo166
  8. Python爬虫QQ音乐数据采取,公开数据获取案例之一(1),腾讯Python开发面试记录
  9. 我的MSN机器人终于有了自己的头像
  10. 关于核磁共振图像的命名原则及含义(总结自用)