BZOJ3450 BZOJ4318 期望的線性性質

2021-08-18 15:07:26 字數 1343 閱讀 6092

這兩個題的套路是一樣的,放在一起說。

因為期望有線性性質,也就是說我們可以分開算每一位的期望,再加起來就是答案。由於e[

(x+1

)2−x

2]=2

e[x]

+1e [(

x+1)

2−x2

]=2e

[x]+

1,所以我們只需要維護乙個期望長度即可,維護的方法十分簡單,相信聰明的你很快就能明白。

#include

using

namespace

std;

#define ll long long

#define pa pair

const

int maxn=300010;

const

int inf=2147483647;

int read()

while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return x*f;

}int n;

char s[maxn];

int main()

printf("%.4lf",ans);

}

e[(

x+1)

3−x3

]=e[

3x2+

3x+1

]=3e

[x2]

+3e[

x]+1

e [(

x+1)

3−x3

]=e[

3x2+

3x+1

]=3e

[x2]

+3e[

x]+1

,由此可知我們需要多維護乙個長度的平方的期望,注意不是期望長度的平方,維護方法類似,在此就不再贅述了。

#include

using

namespace

std;

#define ll long long

#define pa pair

const

int maxn=300010;

const

int inf=2147483647;

int read()

while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return x*f;

}int n;

char s[maxn];

int main()

printf("%.4lf",ans);

}

bzoj 3450 期望分數

自己只能想到o n 2 的 dp i j 表示 以i結尾,長度為j的o串的概率,然後在每次遇到x的時候算分數.正解是 dp i 表示前i個的答案,d i 表示以i結尾的期望長度.推的時候它用d i d i d i 1 d i 1 來算新增的貢獻,有點不明白為什麼可以這樣 平方的期望應該不等於期望的平...

BZOJ1052 BZOJ3760 覆蓋問題

原題位址 先說自己的逗比方法 二分答案,把所有點用乙個最小的矩形 框 起來,易證矩形的其中乙個端點是最優解中正方形的乙個端點,然後列舉四個端點後遞迴處理,差不多了 然後 olz黃學長的o n 做法 ac code include include include using namespace std...

動態點分治 bzoj 3730,bzoj 1095

總結一下動態點分治的模板。對於乙個樹,把它點分的同時記錄每個點的所有父親 logn個 並記錄點距其父親的距離。具體實現就是dfs的時候fa x dep x u,dis x dep x d bzoj1095 您需要寫乙個程式支援反轉點的顏色,求距離最遠的黑色點對的距離。解析 在每個點u存乙個堆st記錄...