有乙個人,做乙個烟花需要n分鐘,做的好的概率是p * 0.0001,點燃一次烟花需要m分鐘(不管有多少個烟花),如果點燃的烟花中有乙個好的,就停止做烟花,否則就繼續練習,問最少需要多長的練習時間??
輸入第一行乙個t,代表t組樣例
接下來的t行,每一行輸入n,m,p
輸出最小的練習時間輸入3
1 1 5000
1 1 1
1 2 10000
輸出4.0000000000
10141.5852891136
3.0000000000
首先先來說明,每一次都是生產相同數量點燃。
原因:這是需要最優策略。假設k=9是最優策略,那麼就要一直選擇9進行燃燒。
所以對於每次進行的燃燒,都要等到生產了k(9)個時才能進行一塊點燃。
假設每k個釋放一次,那麼成功的概率為1-(1-p)^k(p=p*1e-4)。
釋放幾次後可以得到完美的期望------幾何分布:
幾何分布:離散型概率分布。其中一種定義為:在n次伯努利試驗中,
試驗k次才得到第一次成功的概率。詳細的說,是:前k-1次皆失敗,
第k次成功的概率。
期望e(x)=1/p;(概率**式,不再贅述)
所以可以得
f(k)=e(x)(kn+m) = (k*n+m)/[1-(1-p)^k]。
尋找最優解,最小值。猜測是開口向上的拋物線—驗證,
測試1-10000的k看資料變化。 驗證------三分答案:
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
2e5+5;
double n,m,p;
double
qpow
(double a,
int b)
return res;
}doublef(
int k)
intmain()
else l = lm +1;
}printf
("%.10lf\n"
,ans);}
return0;
}
資料結構與演算法 11 三分法
求函式的駐點 從高數或者大霧借鑑的思路,只要數值求導即可,加上二分法的思想 如題,給出乙個 n 次函式,保證在範圍 l,r 內存在一點 xx,使得 l,x 上單調增,x,r 上單調減。試求出 x 的值。第一行一次包含乙個正整數 nn 和兩個實數 l,r 含義如題目描述所示。第二行包含 n 1個實數,...
資料結構基本概率
基本概率啥的就不搬書上的了,主要寫寫我自己的體會。資料結構 我覺得資料結構是一種人為精心選擇的儲存資料的方式,用以解決現實生活中資料間的複雜關係,我們學習的棧,佇列等只是資料結構的基礎,根據實際題目等可以選取便利的資料結構,甚至自己拼湊 修改出乙個最適合的資料結構。總而言之,我認為資料結構是儲存資料...
資料結構 排序 快速排序的優化(三分取中法實現)
優化一 當待排列序列的長度分割到一定大小時,使用插入排序 原因 對於很小和部分有序的陣列,快排不如插入排序好。當待排序序列的長度分割到一定大小後,繼續使用分割的效率比插入排序要差 但是三分取中 插入排序還不能處理重複陣列 優化二 聚集相同基準法 處理重複的陣列元素 原因 在一次分割結束後,可以把與p...