hdu 5570(数学期望)
生活随笔
收集整理的這篇文章主要介紹了
hdu 5570(数学期望)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5570
【分析】
用A[i][j]表示第i個球為顏色j的概率
用c[j]表示顏色為j的球的個數
用E[x]表示式子x的期望,顯然有E[X[i][j]]=A[i][j]*1+(1-A[i][j])*0=A[i][j]
用P[x]表示事件x發生的概率
題目所要求的是E[c[1]^2 +c[2]^2 +c[3]^2+...+c[m]^2]
按照期望的線性相加特性,題目所求的就是∑(j=1~m)E[c[j]^2]=E[c[1]^2]+E[c[2]^2]+...+E[c[m]^2];
一上來就研究概率,思路很難入手,難度會大一點。
于是我們不妨對于一個單獨的狀態(就是每個小球的顏色都確定)做研究——
用X[i][j]表示第i個球是否為第j種顏色,如果是,X[i][j]為1;否則,X[i][j]為0。
那么,c[j]=X[1][j]+X[2][j]+...+X[n][j].
回到∑(j=1~m)E[c[j]^2],它便可以寫成——
=∑(j=1~m)E[(X[1][j]+X[2][j]+...+X[n][j])^2]
對于元素個數的平方,如何考慮其疊加性質,從貢獻上,通過加法來簡化問題?
元素個數的平方,等于元素的pair數(pair自然也包括[自身,自身]這一個)。
于是,上式又可以化為——
=∑(for j=1~m--for p=1~n--for q=1~n)E[ X[p][j]*X[q][j] ]
我們上面研究的某一個狀態下的答案。然而我們還需要把其轉化為概率來思考。
然而,在嘗試化簡的時候,我們注意點:E[X[p][j] * X[q][j]](p!=q)和 E[X[p][j]* X[p][j]] 是不一樣的
因為對于E[X[p][j] * X[q][j]]來說,并結合上面確定的E[X[i][j]]=A[i][j]——
如果p!=q,那么這兩個隨機變量互相獨立=E[X[p][j]] * E[X[q][j]] =A[p][j]*A[q][j]
如果p==q,那么E[ X[p][j]*X[p][j] ]=E[X[p][j]]=A[p][j]
于是,對于這道題的答案,式子先變成了——
∑(for j=1~m)
{
∑(for p=1~n)
{
∑(for q=1~n&&q!=p){A[p][j]*A[q][j]}
+A[p][j]
}
}
再化簡一下,最后的式子就是——
∑(for j=1~m)
{
( ∑(for i=1~n)A[i][j] )^2
-∑(for i=1~n)A[i][j]^2 //這個是( ∑(for i=1~n)A[i][j] )^2中多算的量,減掉。
+∑(for i=1~n)A[i][j] //這個是真正應該算入的量,加上去。
}
我們發現,這個復雜度確實只有O(nm),這道題就做完啦~~
【時間復雜度&&優化】
O(nm)
參考博客:http://blog.csdn.net/snowy_smile/article/details/50032485
#include<iostream> #include<cstdio> #include<cstring> using namespace std;const int maxn = 1005; int n,m; double p[maxn][maxn];int main() {while(scanf("%d%d",&n,&m)!=EOF){for(int i = 1; i <= n; i++){double sum = 0;for(int j = 1; j <= m; j++){scanf("%lf",&p[i][j]);sum += p[i][j];}for(int j = 1; j <= m; j++)p[i][j] = p[i][j] / sum;}double ans = 0;for(int i = 1; i <= m; i++){double tmp = 0;for(int j = 1; j <= n; j++)tmp += p[j][i];tmp = tmp * tmp;for(int j = 1; j <= n; j++)tmp -= p[j][i] * p[j][i];for(int j = 1; j <= n; j++)tmp += p[j][i];ans += tmp;}printf("%.2f\n",ans);}return 0; }總結
以上是生活随笔為你收集整理的hdu 5570(数学期望)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 5569(二维dp,水题)
- 下一篇: Jeecg 切换默认首页方法