【~~~】POJ_1664
int f(int m, int n)
{
/* 有些盘子不放苹果,已包含在f(m, n - 1)中,返回0*/
if (m < 0) return 0;
/* 刚好每个盘子放1个,只有一种情况 */
if (m == 0) return 1;
/* 只有1个盘子可以放,也只有全部放入这一种情况 */
if (n == 1) return 1;
/* n个盘子内至少都放1个 + 只放入n-1个盘子中 */
return f(m - n, n) + f(m, n - 1);
}
用搜索的方式:
#include "stdio.h"
int ans , n , m;
void dfs(int k , int s , int t)
{
int i ;
if( s==n )
{
if(t==m) ans++;
return ;
}
for(i=k;i>=0; i--)
{
if( t + i <= m )
{
dfs(i, s+1, t+i);
}
}
}
int main()
{
int t , i , j ;
scanf("%d",&t);
while(t--)
{
ans = 0;
scanf("%d %d",&m,&n);
for( i = m ; i >= 0 ; i-- )
dfs(i,1,i);
printf("%d\n",ans);
}
return 0;
}
转载于:https://www.cnblogs.com/zuckerTT/archive/2011/09/24/2189809.html
- poj 1664 递推(盘子放苹果)
- [POJ] 1664 -> 放苹果
- poj 1664放苹果 递归 DFS及等价问题
- POJ1664
- POJ 1664 递推
- 【POJ 2283】 【HDU 1664】 Different Digits
- POJ 1664 放苹果
- POJ1664. 放苹果(DP)
- poj 动态规划DP - 1664 放苹果
- POJ 1664 放苹果
- POJ1664——动态规划+递归应用
- Poj1664!【递归】
- poj1664放苹果
- poj——1664——放苹果
- poj 1664放苹果
- poj 1664 记忆化搜索
- poj 1664 放苹果(中文题目)
- poj 1664 放苹果
- POJ-1664-放苹果-dp
- poj 1664 放苹果