點此看題面
立方的期望顯然不等於期望的立方,這種東西自己舉幾個例子就知道了。
考慮我們維護到第\(i\)個位置為止的答案為\(ans_i\),連續長度期望為\(a_i\),連續長度平方期望為\(b_i\),連續長度立方期望為\(c_i\)。
一次期望的長度轉移是顯然的:
\[a_i=a_i(a_+1)
\]對於二次期望,考慮\((x+1)^2=x^2+2x+1\),可以借助一次期望一同計算:
\[b_i=a_i(b_+2a_+1)
\]知道二次期望,三次期望就同理了:
\[c_i=a_i(c_+3b_+3a_+1)
\]至於答案,由於它求的是極長連續段,所以我們有:(只有不連續了才能算答案)
\[ans_i=ans_+(1-a_i)c_
\]但注意這樣沒有計算最後乙個連續段,因此最終的答案為\(ans_n+c_n\)。
具體實現時沒必要開陣列。
#include#define tp template#define ts template#define reg register
#define ri reg int
#define con const
#define ci con int&
#define i inline
#define w while
#define n 100000
#define db double
using namespace std;
int n;
int main()
洛谷1654 BZOJ4318 OSU 期望
題目鏈結 題意 有乙個長度為n nn的序列,每個數字都是0 00或1 11,告訴你每個數是1 11的概率。其中長度為x xx的連續的一段1 11對答案的貢獻是x 3x 3 x3,求答案的期望。n 1 e5 n 1e5 n 1 e5,四捨五入保留一位小數。題解 我們考慮乙個dp。最簡單的dp是n 2n...
洛谷 OSU (期望DP)
題目位址 設 f i 表示以 i 結尾的連續 1 區間的期望貢獻 x 1 g i 表示以 i 結尾的連續 1 區間的期望貢獻 x 2 則有 f i p i f i 1 1 g i p i g i 1 2f i 1 1 因為 x 1 2 x 2 2x 1 類似的,可以設 h i 表示以 i 結尾的連續...
LUOGU P1654 OSU 概率期望
傳送門 解題思路 首先考慮對於乙個點來說,如果這個點是1的話,那麼對於答案來說 ans 1 3 ans 3 3 ans 2 3 ans 1 這對於上乙個答案來說其實貢獻了 3 ans 2 3 ans 1 那麼只需要維護乙個 ans 2 與 ans 的期望,然後轉移到 ans 就行了。include ...