zoukankan      html  css  js  c++  java
  • HDU 2512 一卡通大冒险 (第二类斯特林数)

    题目链接:HDU 2512

    Problem Description

    因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身。某天,他们在机房商量一个绝妙的计划"一卡通大冒险"。这个计划是由wf最先提出来的,计划的内容是,把自己的联系方式写在校园一卡通的背面,然后故意将自己的卡"遗失"在某处(如水房,TD,食堂,主M。。。。)他们希望能有MM看到他们遗失卡,能主动跟他们联系,这样就有机会请MM吃饭了。他们决定将自己的一卡通夹在基本相同的书里,然后再将书遗失到校园的各个角落。正当大家为这个绝妙的计划叫好时,大家想到一个问题。很明显,如果只有一张一卡通,那么只有一种方法,即,将其夹入一本书中。当有两张一卡通时,就有了两种选择,即,将两张一卡通夹在一本书里,或者分开夹在不同的书里。当有三张一卡通时,他们就有了5种选择,即:

    {{A},{B},{C}} , {{A,B},{C}}, {{B,C},{A}}, {{A,C},{B}} ,{{A,B,C}} 于是,

    这个邪恶计划的组织者wf希望了解,如果ACM训练对里有n位帅哥(即有N张一卡通),那么要把这些一卡通夹到书里有多少种不同的方法。

    Input

    包含多组数据,第一行为n,表示接下来有n组数据。以下每行一个数x,表示共有x张一卡通。(1≤x≤2000).

    Output

    对每组数据,输出一行:不同的方法数,因为这个数可能非常大,我们只需要它除以1000的余数。

    Sample Input

    4
    1
    2
    3
    100
    

    Sample Output

    1
    2
    5
    751
    

    Source

    ECJTU 2008 Autumn Contest

    Solution

    题意

    如题。

    思路

    (n) 个各不相同的物品放到若干个相同的盒子,很明显就是第二类 Stirling 数。

    题目中要把 (1)(n) 个盒子的方案数加起来。该方案总数也称为贝尔 (Bell) 数。

    Code

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 2000 + 10;
    const int mod = 1000;
    
    int s[maxn][maxn], sum[maxn];
    
    void init() {
        s[0][0] = 1;
        for(int i = 1; i < maxn; ++i) {
            s[i][0] = 0;
            s[i][i] = 1;
            sum[i] = 1;
        }
        for(int i = 2; i < maxn; ++i) {
            for(int j = 1; j < i; ++j) {
                s[i][j] = (s[i - 1][j - 1] + j * s[i - 1][j]) % mod;
                sum[i] = (sum[i] + s[i][j]) % mod;
            }
        }
    }
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(0);
        init();
        int T;
        cin >> T;
        while(T--) {
            int n;
            cin >> n;
            cout << sum[n] << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/wulitaotao/p/11879168.html
Copyright © 2011-2022 走看看