zoukankan      html  css  js  c++  java
  • 【洛谷P1287】 盒子与球

    题目描述

    现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。问有多少种方法?

    例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分别编为1、2、3号),则有6种不同的方法:

    输入输出格式

    输入格式:

    两个整数,n和r,中间用空格分隔。(0≤n, r≤10)

    输出格式:

    仅一行,一个整数(保证在长整型范围内)。表示n个球放入r个盒子的方法。

    输入输出样例

    输入样例#1:
    3 2
    
    输出样例#1:
    6

    题解:

    第二类Stirling数模板题,由于盒子是不同的所以最后的结果要乘以r的阶乘。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    typedef long long LL;
    int n,r;
    LL f[12][12];
    LL jc(int x)
    {
        LL ans=1;
        for(int i=1;i<=x;i++)
            ans*=i;
        return ans;
    }
    int main()
    {
        scanf("%d%d",&n,&r);
        f[1][1]=1;
        for(int i=2;i<=n;i++)
        for(int j=1;j<=r;j++)
        f[i][j]=f[i-1][j-1]+f[i-1][j]*j;
        printf("%lld
    ",f[n][r]*jc(r));
        return 0;
    }
        
    欢迎转载,转载请注明出处!
  • 相关阅读:
    JAVA---JDK环境变量的配置
    “==” 与“equals(Object)”区别
    js替换字符串中所有斜杠
    uploadify学习笔记
    VBA学习笔记
    浮动导航条的实现
    canvas初识笔记
    EntityFramework存储过程的返回类型
    CSS及html的特殊字符表
    DIV六种实现元素水平居中
  • 原文地址:https://www.cnblogs.com/huihao/p/7201961.html
Copyright © 2011-2022 走看看