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(第一类斯特林数)