设为首页 加入收藏

TOP

hdu 3076 ssworld VS DDD (概率dp)
2015-07-20 17:31:01 来源: 作者: 【 】 浏览:2
Tags:hdu 3076 ssworld DDD 概率
///题意:
/// 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; i
       
        1) ans=1; printf("%.6lf\n",ans); } return 0; } 
       
      
     
    
   
  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇E. Pillars(Codeforces Round #2.. 下一篇BZOJ 3209 花神的数论题 数位DP+..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)
·深入浅出 C++ Lambda (2025-12-26 05:49:40)
·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)