HDU 3625 Examining the Rooms(第一类斯特林数)

Posted lalalatianlalu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 3625 Examining the Rooms(第一类斯特林数)相关的知识,希望对你有一定的参考价值。

题意:给你n扇门,然后可以开k次门,每次们后都有一把钥匙,不能开1号门,问最后打开一号门的概率是多少

思路:看大家说是裸的第一类斯特林数,我觉得有篇博客写的很好(传送门),这里采取的是博客里的第二种思路,感觉这种如果想到的话更容易理解,但是并没有遇到博客里说的g++会wa的情况

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=55;
LL s1[maxn][maxn];
double f[55];
void init()
{
    s1[0][0]=1;
    for(int i=1;i<maxn;i++){
        for(int j=1;j<=i;++j){
            s1[i][j]=s1[i-1][j-1]+s1[i-1][j]*(i-1);
        }
    }
}
int main()
{
    init();
    f[0]=1;
    for(int i=1;i<maxn;i++){
        f[i]=f[i-1]*i;
    }
    int T_T;
    scanf("%d",&T_T);
    while(T_T--){
        int n,k;
        scanf("%d%d",&n,&k);
        double ans=0;
        for(int i=1;i<=k;i++){
            ans+=s1[n][i]-s1[n-1][i-1];
        }
        ans/=f[n];
        printf("%.4f
",ans);
    }
    return 0;
}

 

以上是关于HDU 3625 Examining the Rooms(第一类斯特林数)的主要内容,如果未能解决你的问题,请参考以下文章

hdu 3625 Examining the Rooms —— 第一类斯特林数

HDU 3625 Examining the Rooms:第一类stirling数

Examining the Rooms HDU - 3625(第一类斯特林数)

HDU 3625 Examining the Rooms(第一类斯特林数)

Examining the Rooms - 第一类斯特灵数

Examining the database in SQL injection attacks