ti放苹果
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 24392   Accepted: 15513

Description

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

Input

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

Output

对输入的每组数据M和N,用一行输出相应的K。

Sample Input

  1. 1
  2. 7 3

Sample Output

  1. 8
  2.  
  3. pshttp://poj.org/problem?id=1664
    题意:略。。。
    详见代码。
  1. /*
  2. 解题分析:
  3. 设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,
  4. 当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)  
  5. 当n<=m:不同的放法可以分成两类:
  6. 1、有至少一个盘子空着,即相当于f(m,n) = f(m,n-1);
  7. 2、所有盘子都有苹果,相当于可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即f(m,n) = f(m-n,n).
  8. 而总的放苹果的放法数目等于两者的和,即 f(m,n) =f(m,n-1)+f(m-n,n)
  9. 递归出口条件说明:
  10. 当n=1时,所有苹果都必须放在一个盘子里,所以返回1;
  11. 当没有苹果可放时,定义为1种放法;
  12. 递归的两条路,第一条n会逐渐减少,终会到达出口n==1;
  13. 第二条m会逐渐减少,因为n>m时,我们会return f(m,m) 所以终会到达出口m==0.
  14. */
  15. #include<stdio.h>
  16.  
  17. int fun(int m,int n) //m个苹果放在n个盘子中共有几种方法
  18. {
  19. if(m==||n==) //因为我们总是让m>=n来求解的,所以m-n>=0,所以让m=0时候结束,如果改为m=1,
  20. return ; //则可能出现m-n=0的情况从而不能得到正确解
  21. if(n>m)
  22. return fun(m,m);
  23. else
  24. return fun(m,n-)+fun(m-n,n);
  25. }
  26.  
  27. int main()
  28. {
  29. int T,m,n;
  30. scanf("%d",&T);
  31. while(T--)
  32. {
  33. scanf("%d%d",&m,&n);
  34. printf("%d\n",fun(m,n));
  35. }
  36. }
  1.  
  1. 我之前的代码,
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. int n,a,b,i,j;
  6. int arr[][];
  7. scanf("%d",&n);
  8. while(n--)
  9. {
  10. scanf("%d%d",&a,&b);
  11. for(i=;i<=a;i++)
  12. {
  13. arr[i][]=;
  14. arr[i][]=;
  15. }
  16. for(i=;i<=b;i++)
  17. {
  18. arr[][i]=;
  19. arr[][i]=;
  20. }
  21. for(i=;i<=a;i++)//i表示苹果个数
  22. for(j=;j<=b;j++)//j表示盘子个数
  23. {
  24. if(i>=j)
  25. arr[i][j]=arr[i][j-]+arr[i-j][j];
  26. else
  27. arr[i][j]=arr[i][i];//盘子多于苹果个数时。把多的盘子去掉。
  28. }
  29. printf("%d\n",arr[a][b]);
  30. memset(arr,,sizeof(arr));
  31. }
  32. return ;
  33. }
  1.  

还是要多做些递归题啊,,,,!

  1.  

放苹果(poj1664递归)的更多相关文章

  1. poj1664放苹果(递归)

    题目链接:http://poj.org/problem?id=1664 放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: ...

  2. poj 1664放苹果(递归)

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

  3. poj1664 放苹果(递归)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=1664 ------ ...

  4. POJ 1664 放苹果(递归或DP)

    一.Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t ...

  5. POJ 放苹果问题(递归)

    首先我们想象有一个函数count  f(m,n)可以把m个苹果放到n个盘子中. 根据 n 和 m 的关系可以进一步分析: 特殊的m <=1|| n <= 1时只有一种方法: 当 m < ...

  6. poj 1664 放苹果,递归(深度优先搜索)

    #include "stdio.h" int DFS(int n,int m); int main() { int T; int n,m; int s; scanf("% ...

  7. poj1664 放苹果(DPorDFS)&&系列突破(整数划分)

    poj1664放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33661   Accepted: 20824 Desc ...

  8. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  9. POJ1664 放苹果 (母函数)

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

随机推荐

  1. HttpClient的帮助类

    /// <summary> /// http请求类 /// </summary> public class HttpHelper { private HttpClient _h ...

  2. ASP.NET MVC的切片(Section)脚本(script)

    在ASP.NET MVC使用切片脚本,实在是很溜. 在使用layout之后,只是视图套用_Layout之后,在视图中任一位置任一时候均可以使用切片脚本. 首先在_Layout.cshtml定一些规则: ...

  3. JQuery Mobile - 导航栏选中状态代码

    class="ui-btn-active" 参考: https://wizardforcel.gitbooks.io/w3school-jqmobile/content/8.htm ...

  4. Linux常用命令 - ls

    目录 Linux常用命令-ls 简介 ls -F ls -a ls -R ls -l 后记 Linux常用命令-ls 简介 ls主要用于显示文件和目录列表.作为最常见的Linux命令,大家应该都不会陌 ...

  5. 二进制入门-打造Linux shellcode基础篇

    0x01 前言   本文的目的不是为了介绍如何进行恶意的破坏性活动,而是为了教会你如何去防御此类破坏性活动,以帮助你扩大知识范围,完善自己的技能,如有读者运用本文所学技术从事破坏性活动,本人概不负责. ...

  6. fatal: LF would be replaced by CRLF in index.html

    进入项目目录,在.git文件夹下打开config配置文件,添加上下面两句话: autocrlf = false safecrlf = false 即可

  7. npm 包 升降版本

    今天用vue-awesome-swiper最新版本遇到些问题,需要调整到2.6.7版本.记录以下. 查看vue-awesome-swiper版本 npm list vue-awesome-swiper ...

  8. tomcat 启动 证书异常java.io.IOException: Alias name [cas] does not identify a key entry

    在搭建CAS server的过程中,Tomcat开启https,配置秘钥证书,证书是通过keytool生成的 <Connector port=" protocol="org. ...

  9. MATLAB 到 Python之路1_数据结构和简单操作

    在numpy中,用array来代替matrix,不同于MATLAB中的万物皆matrix,这里的数据首先以array存在,然后通过操作才能和矩阵形式的array运算 1,array的形式 1.1 一维 ...

  10. 【sping揭秘】2、关于spring配置文件

    <import>标签 引入其他的配置文件,如果A.xml 中的<bean>定义可能依赖B.xml中的某些<bean>定义,那么可以再A.xml中使用这种方式< ...