DSOJ Placing apples(放苹果)
来源:互联网 发布:dnf战斗力基础属性算法 编辑:程序博客网 时间:2024/05/21 08:35
题目链接
#include<stdio.h>//Placing Apples/* 解题分析: 设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论, 当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m) 当n<=m:不同的放法可以分成两类: 1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1); 2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即f(m,n) = f(m-n,n). 而总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n) 递归出口条件说明: 当n=1时,所有苹果都必须放在一个盘子里,所以返回1; 当没有苹果可放时,定义为1种放法; 递归的两条路,第一条n会逐渐减少,终会到达出口n==1; 第二条m会逐渐减少,因为n>m时,我们会return f(m,m) 所以终会到达出口m==0. */int fun(int m, int n)//m个苹果放在n个盘子中共有多少种放法{if (m == 0 || n == 1)return 1;if (n > m)return fun(m, m);elsereturn fun(m, n - 1) + fun(m - n, n);}int main(){int m, n, t;scanf("%d", &t);while (t--){scanf("%d%d", &m, &n);printf("%d\n", fun(m, n));}return 0;}
0 0
- DSOJ Placing apples(放苹果)
- dfs-placing apples
- Open Judge 1664 Placing apples
- openjudge 百练1664:Placing apples
- opj线性表Placing apples 题解
- 放苹果(递归)
- 放苹果(递归)
- 【放苹果(题解)】
- 放苹果(递归)
- poj1664 放苹果(递归)
- poj1664 放苹果(递归)
- 华为OJ(放苹果)
- POJ-放苹果(DP)
- POJ1664 放苹果(递归)
- poj1664 放苹果(递归)
- 1018:放苹果(递归)
- POJ1664(递归,放苹果)
- 放苹果问题(递归)
- Yocto tips (1): Yocto 编译后文件放在了哪里 输出文件位置
- 详细探究Spark的shuffle实现
- 最短路径算法—Floyd(弗洛伊德)算法分析与实现(Python)
- c语言的日常心得与总结
- C#设置程序开机自启动,代码别人的,没有经过测试
- DSOJ Placing apples(放苹果)
- img底部多出3像素解决办法
- IOS开发之文本复制
- Android 之一张图片搞定数据加载进度条+各种颜色效果,任性的不得了
- Android开发必知的50个诀窍之一
- UESTC 653 扫雷 模拟
- Hadoop HDFS DN 内核Bug
- DSOJ 中缀表达式求值
- MFC简易计算器