///题意: /// A,B掷骰子,对于每一次点数大者胜,平为和,A先胜了m次A赢,B先胜了n次B赢。 ///p1表示a赢,p2表示b赢,p=1-p1-p2表示平局 ///a赢得概率 比一次p1 两次p0*p1 三次 p0^2*p1,即A赢的概率为p1+p*p1+p^2*p1+...p^n*p1,n->无穷 ///即a_win=p1/(1-p);b_win=p2/(1-p); ///dp[i][j]表示a赢了j次,b赢了i次的概率 ///dp[i][j]=dp[i-1][j]*b_win+dp[i][j-1]*a_win; ///ps:(两人的血量要换一换,数据错了) # include# include # include # include using namespace std; double dp[2010][2010]; int main() { int i,j,n,m; double p1,p2,p,a_win,b_win,a[10],b[10]; while(~scanf("%d%d",&m,&n)) { for(i=1; i<=6; i++) scanf("%lf",&a[i]); for(i=1; i<=6; i++) scanf("%lf",&b[i]); a_win=0; b_win=0; for(i=2; i<=6; i++) { for(j=1; j 0) dp[i][j]+=dp[i][j-1]*a_win; if(i>0) dp[i][j]+=dp[i-1][j]*b_win; } } double ans=0; for(i=0; i1) ans=1; printf("%.6lf\n",ans); } return 0; }