題目背景
加特林輪盤賭是乙個養生遊戲.
題目描述
與俄羅斯輪盤賭等手槍的賭博不同的是,加特林輪盤賭的賭具是加特林。
加特林輪盤賭的規則很簡單:在加特林的部分彈夾中填充子彈。遊戲的參加者坐在乙個圓桌上,輪流把加特林對著自己的頭,扣動扳機一秒鐘。中槍的自動退出,堅持到最後的就是勝利者。
我們使用的是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...