zoukankan      html  css  js  c++  java
  • hdu 2643 rank 第二类斯特林数

    题意:给定n个人,要求这n个人的所有可能排名情况,可以多个人并列(这个是关键)。

    题解:由于存在并列的问题,那么对于n个人,我们最多有n个排名,枚举一下1~n,累加一下就好。(注意这里是变种的斯特林数——每个子集合是可互相区分的)。

    ac代码:

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    ll s[110][110];
    ll f[110];
    const ll mod=20090126;
    void init()
    {
        for(int i=1;i<=100;i++) s[i][i]=1,s[i][0]=0;
        for(int i=1;i<=100;i++)
        {
            for(int j=1;j<=i-1;j++)
            {
                s[i][j]=(j*s[i-1][j]+s[i-1][j-1])%mod;
            }
        }
        f[0]=1;
        f[1]=1;
        for(int i=2;i<=100;i++) f[i]=(f[i-1]*i)%mod;
    }
    int main()
    {
        init();
        //cout<<s[3][2]<<endl;
        int t;
        cin>>t;
        while(t--)
        {
            ll x;
            cin>>x;
            ll sum=0;
            for(int i=1;i<=x;i++)
            {
                sum=(sum+f[i]*s[x][i])%mod;
            }
            cout<<sum<<endl;
        }
        return 0;
    }
  • 相关阅读:
    大数减法模板
    扩展kmp模板
    poj2185(kmp)
    poj3167(kmp)
    kuangbin专题K(next数组)
    kuangbin专题16I(kmp)
    kuangbin专题16H(next数组)
    kuangbin专题16D(next求最小循环节)
    kuangbin专题16B(kmp模板)
    Java集合--TreeSet
  • 原文地址:https://www.cnblogs.com/z1141000271/p/7645335.html
Copyright © 2011-2022 走看看