zoukankan      html  css  js  c++  java
  • 经典递归集合

    1.放苹果--[①2020-02-07]

    题目大意:他一共有n个口罩和m个盒子,每个盒子可以放任意个口罩(允许空着) 现在他想问你一共有多少种放口罩的方案? Hint: 1 2 2 和 2 1 2 是同一种分配方案

    分情况讨论:

    1.n=0,没有口罩,那么只有一种放法,即f(0,m)=1

    2.m=1,只有一个盒子中,不论有或者无口罩,那么只有一种放法,f(n,1)=1

    3.m>n,和m个口罩放在m个盒子中是一样的,即f(n,m)=f(n,n)

    4.n>=m,这时分为两种情况,一是所有盒子都有口罩,二是不是所有盒子都有口罩

    递归解析:    以后做题就从此图的思路进行思考

    //#include<bits/stdc++.h>
    #include<iostream>
    using namespace std;
    
    
    int f(int n,int m)
    {
        if(n==0||m==1) return 1;
        if(n<m) return f(n,n);
        else return f(n-m,m)+f(n,m-1);
    }
    int main()
    {
        int T;cin>>T;
        while(T--){
            int n,m;cin>>n>>m;
            int sum=f(n,m);
            cout<<sum<<endl;
        }
    }

  • 相关阅读:
    1105 Spiral Matrix
    Spring Boot 单元测试
    第一个 Spring Boot 应用程序
    Spring Boot 优缺点
    Spring Boot 简介
    第一个 Spring 应用程序
    Spring 体系结构
    Spring 与 IoC
    Spring 的特点
    Spring 简介
  • 原文地址:https://www.cnblogs.com/waryan/p/12273824.html
Copyright © 2011-2022 走看看