• 放苹果


    题目描述

    把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
    注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。

    输入描述:

    输入包含多组数据。

    每组数据包含两个正整数 m和n(1≤m, n≤20)。

    输出描述:

    对应每组数据,输出一个整数k,表示有k种不同的分法。
    示例1

    输入

    复制
    7 3

    输出

    复制
    8

    思路:
    首先定义状态:results[i][j]: 表示将i个苹果放置到j个盘子上面。
    状态转移方程为:
      如果i>=j:苹果数目大于或者等于盘子的数目,那么当前状态等于=其中只有一个盘子为空的状态+所有盘子都有苹果的状态
    results[i][j] = results[i][j-1] + results[i-j][j]
    如果i<j:
    results[i][j] = results[i][i]
    代码实现由递归和非递归方式:
    def getCount(m,n):
        if m == 0 or n == 1:
            return 1
        if m < n:
            return getCount(m,m)
        else:
            return getCount(m,n-1) + getCount(m-n,n)
    
    while True:
        try:
            m, n = raw_input().split(' ')
            print getCount(int(m),int(n))
        except:
            break
    results = [[1 for i in xrange(21)] for j in xrange(21)]
    
    for i in xrange(1,21):
        for j in xrange(2, 21):
            if i < j:
                results[i][j] = results[i][i]
            else:
                results[i][j] = results[i-j][j] + results[i][j-1]
    
    while True:
        try:
            m, n = map(int, raw_input().split(' '))
            print results[m][n]
        except:
            break
  • 相关阅读:
    centos7物理机a start job is running for dev-mapper-centosx2dhome.device
    jenkins pipeline流水线
    nginx 加载慢 负载均衡不均衡
    山田预发环境发布脚本
    prometheus 监控容器
    maven私服安装使用
    日志清理
    ERROR 1046 (3D000) at line 1: No database selected
    网络工程学习经典书籍推荐
    每日一句
  • 原文地址:https://www.cnblogs.com/Spider-spiders/p/10636593.html
Copyright © 2020-2023  润新知