1. 程式人生 > >HDOJ 3625 第一類斯特靈數

HDOJ 3625 第一類斯特靈數

als col ble ini php ios oid 允許 std

鏈接:

http://acm.split.hdu.edu.cn/showproblem.php?pid=3625

題意:

有N個房間,每個房間裏有一把鑰匙,鑰匙隨機分配。如果手中有對應的鑰匙,就可以開門,如果沒有鑰匙就只能選擇破門而入拿鑰匙,

第一個房間不允許破門,給定最多破門次數K,求能進入所有房間的概率。

題解:

第一類斯特林數

代碼:

31 ll stir[25][25];
32 ll jie[25];
33 
34 void init() {
35     stir[1][0] = 0;
36     stir[1][1] = 1;
37     rep(i, 2
, 21) rep(j, 1, i + 1) 38 stir[i][j] = stir[i - 1][j - 1] + (i - 1)*stir[i - 1][j]; 39 jie[1] = 1; 40 rep(i, 2, 21) jie[i] = jie[i - 1] * i; 41 } 42 43 int main() { 44 //ios::sync_with_stdio(false), cin.tie(0); 45 init(); 46 int T; 47 cin >> T; 48 while
(T--) { 49 int n, k; 50 cin >> n >> k; 51 ll ans = 0; 52 rep(i, 1, k + 1) ans += stir[n][i] - stir[n - 1][i - 1]; 53 printf("%.4f\n", 1.0*ans / jie[n]); 54 } 55 return 0; 56 }

HDOJ 3625 第一類斯特靈數