LnOI2019 加特林輪盤賭

2021-10-25 05:41:52 字數 1923 閱讀 6891

題目背景

加特林輪盤賭是乙個養生遊戲.

題目描述

與俄羅斯輪盤賭等手槍的賭博不同的是,加特林輪盤賭的賭具是加特林。

加特林輪盤賭的規則很簡單:在加特林的部分彈夾中填充子彈。遊戲的參加者坐在乙個圓桌上,輪流把加特林對著自己的頭,扣動扳機一秒鐘。中槍的自動退出,堅持到最後的就是勝利者。

我們使用的是2023年最新技術的加特林,他的特點是無需預熱、子彈無限,每乙個人,在每一回合,中槍的概率是完全相同的p_0p0​

。每局遊戲共有nn只長脖子鹿,從1長脖子鹿開始,按照編號順序從小到大進行遊戲,繞著圓桌不斷迴圈。

遊戲可能會迴圈進行多輪,直到場上僅剩下最後乙隻長脖子鹿時,遊戲結束。

給出p_0p0​

和nn,詢問kk號長脖子鹿最終成為唯一倖存者的概率p_kpk​

。輸入格式

僅一行三個數,p_0,n,kp0​

,n,k.

輸出格式

乙個浮點數p_ pk​

,誤差應該小於10^10

−8.(請保留更多位數的小數)

輸入輸出樣例

輸入 #1 複製

0.5 2 1

輸出 #1 複製

0.33333333

輸入 #2 複製

0.5 2 2

輸出 #2 複製

0.66666667

輸入 #3 複製

0.5 3 1

輸出 #3 複製

0.23809524

輸入 #4 複製

0.5 3 2

輸出 #4 複製

0.28571429

說明/提示

對於10%的資料,n <= 100n<=100.

對於30%的資料,n <= 500n<=500.

對於另外20%的資料,k = nk=n.

對於100%的資料,1 <= k <= n <= 10^, 0 <= p_0 <= 1.1<=k<=n<=10

4,0<=p0​

<=1.

所有資料的時間限制為 1000ms 1000ms,空間限制為 256mb 256mb,可開啟o2優化。

令pw1[i]表示前(k-1)只長頸鹿自斃i次以內退役的概率,pw2[i]表示編號在k+1~n的長頸鹿自斃i次以內退役的概率。於是pw1[i]=s[i](k-1),pw2[i]=s[i](n-k),其中s[i]為乙隻長頸鹿自斃i次以內退役的概率,很容易得到s[i]=1-(1-p)i,因為一次中槍沒有退役的概率為1-p,重複i次均退役則是(1-p)i,所以i次內退役的概率就是1-(1-p)i。因為題目中求的是小數,精度要求是10-8,所以列舉第k只長頸鹿在第i次中槍時退役且為最後乙個退役的概率,把所有概率加起來就行了,可以做到線性複雜度,列舉到106即可(我寫的是線性105也過了)。注意要特判n=1/k=1/k=n的情況。

#include

using

namespace std;

double mi[

10010];

double dp[2]

[10010];

intmain()

mi[0]

=1;for

(int i=

1;i<=n;i++

) dp[0]

[1]=

1;for(

int i=

2;i<=n;i++

) dp[1]

[1]=k*sum/

(1.0

-mi[i]);

for(

int j=

2;j<=i;j++

)for

(int j=

1;j<=i;j++)}

printf

("%0.8lf\n"

,dp[0]

[m])

;return0;

}

LNOI2014 LCA 解題報告

對於一棵 n 個節點的樹,給出 m 次詢問,每次給出 l,r,x 求 sum limits r depth lca i,x n,m le 5 times 10 4 1 le l le r le n x le n 一道不錯的題目。說明有時候用一些其他的做法求乙個簡單的東西也可以幫助思考。對於我,求lc...

九省LNOI2018退役記

立個flag不會退役。day 0 水一發。大連大學的鍵盤敲起來就跟敲紙似的。膜拜要進隊的gqh,yxd,sjq。都進啦2333 高斯消元,高原反應,分麾下治 給我這只弱雞燒根香。今天晚上爭取把板子敲完。day 1 拿到題的一瞬間是mengbi的。t1暴力出奇蹟?t2很 妙?t3不可做,恩。然後寫了一...

物件導向部分 201

小夥伴們,還在為不知道怎麼下手而頭疼嗎,我們程式競賽協會來幫你們啦 啦啦啦。另外,如果有對程式設計含有濃厚興趣的同學,我們隨時歡迎你們的加入喲 策劃 譚兆飛 程式設計 管懷文 協助 一號人員要求給她打碼 乾脆二號也打碼好了o o 其實只是提供了題目啦 物件導向部分 201 include inclu...