因為a1
a
1是必須要減完的,所以我們只要求出對於ai
(i=2...n)
a i(
i=
2...n)
在a−1 a−1
減完前期望被減了多少次,最後加上a1
a
1即可。因為期望的線性性,我們只需要分別考慮每乙個ai
a
i即可。
不妨以考慮a1
,a2 a1,
a2
為例。我們可以把其看成二維平面上的乙個點(a
1,a2
) (a1
,a2)
,每次分別有12
1
2的概率向下/向左移動乙個位置,移到座標軸停止,問在a2
a
2方向期望移動了多少步,可以通過列舉終止位置來算。
1. a
2 a2取了
i i
個時a1
' role="presentation" style="position: relative;">a1a
1已取完,即停在(0
,a2−
i)( 0,
a2−i
)的概率pi
=(a1
+i−1
i)(1
2)a1
+ip i=
(a1+
i−1i
)(12
)a1+
i,這樣的貢獻是
i i
。 2. a
2' role="presentation" style="position: relative;">a2a
2先取完,這樣的概率顯然是1−
∑pi 1−∑
pi
,貢獻是a2
a 2。
那麼我們把所有的ai
a
i扔到乙個桶陣列裡,考慮在o(
max)
o
(max
)的時間內一併求解所有問題。我們可以從小到大列舉
k k
,維護∑j
=0kp
j' role="presentation" style="position: relative;">∑kj
=0pj
∑j=0
kpj和
∑kj=
0j⋅p
j ∑j=
0kj⋅
pj
,那麼對於等於k+
1 k+1
的aia
i的個數sk
+1s k+
1,它們的貢獻就是sk
+1⋅(
(k+1
)(1−
∑pj)
+∑j⋅
pj) sk+
1⋅((
k+1)
(1−∑
pj)+
∑j⋅p
j)
。**:
#include
#include
#include
#include
#include
#define n 100010
#define ll long long
#define up(x,y) (x=(x+(y))%mod)
using namespace std;
const int mod=323232323;
int n,a[n],b[n];
ll fac[n<<1],ifac[n<<1];
ll ksm(ll a,ll b)
ll c(ll a,ll b)
int main()
printf("%lld",(ans+a[1])%mod);
return
0;}
概率論09 期望
描述量 描述隨機變數最完備的方法是寫出該隨機變數的概率分布。然而,正如我們在前面章節看到的,概率分布的表達往往都比較複雜,資訊量很大。這如同我們購置汽車的時候,一輛汽車的全面資料可以說是海量的,比如汽車尺寸,油箱大小等等。我們選擇一輛汽車時,往往只使用有限的幾個具有代表性的量來代表汽車的主要特徵,比...
03 期望和協方差
協方差 概率分布 p x 的函式 f x 的平均值被稱為 f x 的期望,離散情況寫平均值是對不同的 x 的概率進行加權的。e f xp x f x 連續變數的情形下,期望由對應的概率密度的積分的形式表示 e f p x f x dx給定有限的 n 個點,滿足某個概率分布或概率密度函式,期望可以通過...
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 來算新增的貢獻,有點不明白為什麼可以這樣 平方的期望應該不等於期望的平...