zoukankan      html  css  js  c++  java
  • GHOJ 399 盒子与球

    题目描述

            n个有区别的球放到m个相同的盒子中,要求无一空盒,其不同的方案用S(m,n)表示,称为第二类Stirling数。

    输入输出格式

    输入格式

            一行,两个整数为n,m。(1≤n≤10,1≤m≤10)

    输出格式

            一行,表示其对应的方案数。

    输入输出样例

    输入样例

    3 2

    输出样例

    3

    题解

            假设已经放了$(i-1)$个球,总共有$j$个盒子。

            如果这些球放满了$(j-1)$个盒子,显然第$i$个球只能放在第$j$个盒子里。

            但如果这些球放满了$j$个盒子,那第$i$个球的放置就有$j$种选择。

            得出递推式为:$a[i][j]=a[i-1][j] imes j+a[i-1][j-1]$

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int n, m;
    int a[11][11];
    
    int main()
    {
        cin >> n >> m;
        a[1][1] = 1;
        for(int i = 2; i <= n; i++)
        {
            for(int j = 1; j <= min(i, m); j++)
            {
                a[i][j] = a[i - 1][j] * j + a[i - 1][j - 1];
            }
        }
        cout << a[n][m];
        return 0;
    }
    参考程序
  • 相关阅读:
    iOS开发之窗口和视图
    GCD
    禁止非法用户登录综合设置
    大数减法(C++实现)
    大数加法(C++实现)
    迷宫问题 (BFS ➕输出路径)
    Pots (BFS ➕ 输出路径)
    Shuffle'm Up (map ➕ BFS)
    Prime Path (BFS)
    速算24点
  • 原文地址:https://www.cnblogs.com/kcn999/p/10661733.html
Copyright © 2011-2022 走看看