• GHOJ 386 放苹果


    题目描述

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

    输入输出格式

    输入格式

            一行,包含二个整数M和N,以空格分开。(1≤M,N≤100)

    输出格式

            一行,一个整数K,可行的方案数。

    输入输出样例

    输入样例

    7 3

    输出样例

    8

     

    题解

            用$a[i][j]$表示$i$个苹果放$j$个盘子,易得有两种情况:一是不放第$j$个盘子,一是放第$j$个盘子即放满所有盘子,得$a[i][j]=a[i][j-1]+a[i-j][j]$。

    #include <iostream>
    #define MAX_M 101
    #define MAX_N 101
    
    using namespace std;
    
    int m, n;
    int a[MAX_M][MAX_N];
    
    int main()
    {
        cin >> m >> n;
        for(register int i = 0; i <= m; i++) for(register int j = 1; j <= n; j++)
        {
            if(i < 1 || j < 2) a[i][j] = 1;
            else if(i < j) a[i][j] = a[i][i];
            else a[i][j] = a[i - j][j] + a[i][j - 1];
        }
        cout << a[m][n];
        return 0;
    }
    参考程序
  • 相关阅读:
    ref和out的区别
    final、finally、finalize的区别
    get和post的区别
    什么是事务
    锁的详细
    什么是游标
    什么是存储过程
    委托的来由
    多线程的秘密
    String str=null; 和String str=""的区别
  • 原文地址:https://www.cnblogs.com/kcn999/p/10661386.html
Copyright © 2020-2023  润新知