poj 1664 放苹果 递归
2014-12-18 20:55
218 查看
题目链接:
http://poj.org/problem?id=1664
题目描述:
有n个苹果,m个盒子,盒子和苹果都没有顺序,盒子可以为空,问:有多少种放置方式?
解题思路:
当前有n个苹果,m个盒子。
(1):假设当前最少的盒子放置一个苹果,则给m个盒子分别放一个苹果,剩下n-m个苹果。
(2):假设当前最少的盒子不放苹果,则剩m-1个box,n个苹果。
代码:
http://poj.org/problem?id=1664
题目描述:
有n个苹果,m个盒子,盒子和苹果都没有顺序,盒子可以为空,问:有多少种放置方式?
解题思路:
当前有n个苹果,m个盒子。
(1):假设当前最少的盒子放置一个苹果,则给m个盒子分别放一个苹果,剩下n-m个苹果。
(2):假设当前最少的盒子不放苹果,则剩m-1个box,n个苹果。
代码:
#include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> using namespace std; int f (int n, int m); int main () { int t, n, m; scanf ("%d", &t); while (t --) { scanf ("%d %d", &n, &m); printf ("%d\n", f(n, m)); } return 0; } int f (int n, int m) { if (n < 0)//没有苹果了,违法 return 0; if (n == 0 || m == 1)//一个盒子,无论有几个苹果,就只有一种放置方法,没有苹果一样; return 1;//若有一个苹果就需要讨论累加到哪一个剩余的盒子里,盒子没有顺序,但是盒子里苹果数目不同 return f (n-m, m) + f (n, m-1); }
相关文章推荐
- 递归及递推问题系列之 放苹果 poj 1664
- poj 1664 m个苹果放入n个盘子,递归写法和DP写法
- POJ 1664 放苹果 (递归)
- POJ 题目1664 放苹果(递归)
- POJ 1664 分苹果(递归)。
- POJ 1664放苹果(递归问题)
- poj 1664 放苹果 递归
- 经典递归问题--放苹果POJ【1664】
- POJ 1664 放苹果【DFS/递归】
- POJ 1664 放苹果(递归)
- POJ 1664 放苹果(递归或DP)
- POJ 1664 放苹果(递归或DP)
- POJ1664 放苹果(递归)
- 【递归】POJ 1664 放苹果
- POJ 1664 放苹果(递归或DP)
- POJ-1664 放苹果(递归的运用)
- poj 1664 放苹果,递归(深度优先搜索)
- poj 1664 放苹果(递归)
- poj 1664 放苹果(递归)
- POJ 1664 /NYOJ 758 放苹果问题(递归)