這兩個題的套路是一樣的,放在一起說。
因為期望有線性性質,也就是說我們可以分開算每一位的期望,再加起來就是答案。由於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記錄...