概率dp嘛。。今天无意间说错话了,竟然问figo会不会概率dp。。。Sigh。。
据我大figo所说,概率dp只要会高中那些概率知识就完全可以做了,听到这里我第一个想法是:
其实我高中概率也不会啊。。。Sigh。。高考119情何以堪。。
好吧,可能求期望的题会“比较”好理解一些?
由已知的期望推未知的期望,说白了注意点“单位”就行了,就是期望=sum((期望+实验结果)*概率)
#define X 1010 #include<iostream> using namespace std; double p0[X][X],p1[X][X],p2[X][X]; double dp[X][X]; int main(){ int i,j,n,m; while(~scanf("%d%d",&n,&m)){ for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%lf%lf%lf",&p0[i][j],&p1[i][j],&p2[i][j]); for(i=n;i>0;i--) for(j=m;j>0;j--){ dp[i][j]=p0[i][j]*2+p1[i][j]*(dp[i][j+1]+2)+p2[i][j]*(dp[i+1][j]+2); if(p0[i][j]==1)dp[i][j]=0; else dp[i][j]/=1-p0[i][j]; } printf("%.3lf\n",dp[1][1]); } return 0; }
不经意看了下榜,发现站在了第一页,不过代码长度是最短的。