///题意:
/// 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 <stdio.h>
# include <algorithm>
# include <iostream>
# include <string.h>
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<i; j++)
{
a_win+=a[i]*b[j];
b_win+=b[i]*a[j];
}
}
p1=a_win;
p2=b_win;
p=1-p1-p2;
if(p==1)
printf("0.000000\n");//为平局,a不可能赢
else
{
a_win=p1/(1-p);
b_win=p2/(1-p);
}
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(i=0; i<n; i++) //b赢得次数
{
for(j=0; j<m; j++) //a赢得次数
{
if(i==0&&j==0)
continue;
dp[i][j]=0;
if(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<n; i++)
ans+=dp[i][m-1]*a_win;
if(ans>1)
ans=1;
printf("%.6lf\n",ans);
}
return 0;
}

hdu 3076 ssworld VS DDD (概率dp)的更多相关文章

  1. HDU 3076 ssworld VS DDD 概率dp,无穷级数,oj错误题目 难度:2

    http://acm.hdu.edu.cn/showproblem.php?pid=3076 不可思议的题目,总之血量越少胜率越高,所以读取时把两人的血量交换一下 明显每一轮的胜率和负率都是固定的,所 ...

  2. hdu3076--ssworld VS DDD(概率dp第三弹,求概率)

    ssworld VS DDD Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  3. hdu3076ssworld VS DDD 概率dp

    //ssworld VS DDD 两个人有血量值 hp1 , hp2  //两人掷骰子得到每一点的概率已知 //ssword赢的概率 //dp[i][j]  表示有第一个人血量为i.第二个人的血量为j ...

  4. HDU 5781 ATM Mechine (概率DP)

    ATM Mechine 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5781 Description Alice is going to take ...

  5. HDU 4050 wolf5x(动态规划-概率DP)

    wolf5x Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. hdu 4405 Aeroplane chess (概率DP)

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. HDU 4336——Card Collector——————【概率dp】

    Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. HDU 3853:LOOPS(概率DP)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Problem Description   Akemi Homura is a M ...

  9. HDU 4865 Peter's Hobby --概率DP

    题意:第i天的天气会一定概率地影响第i+1天的天气,也会一定概率地影响这一天的湿度.概率在表中给出.给出n天的湿度,推测概率最大的这n天的天气. 分析:这是引自机器学习中隐马尔科夫模型的入门模型,其实 ...

随机推荐

  1. atitit.java方法属性赋值and BeanUtils 1.6.1 .copyProperty的bug

    atitit.java分配给属性值方法and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&quo ...

  2. jQuery获取url参数值

    $.extend({ getUrlVars: function () { var vars = [], hash; var hashes = window.location.href.slice(wi ...

  3. Quartz时间配置

    格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * /  2  分  是  0-5 ...

  4. iOS随机颜色

    #import <UIKit/UIKit.h> @interface UIColor (RandomColor) +(UIColor *) randomColor; @end #impor ...

  5. 状态压缩dp(hdu2167,poj2411)

    hdu2167 http://acm.hdu.edu.cn/showproblem.php?pid=2167 给定一个N*N的板子,里面有N*N个数字,选中一些数字,使得和最大 要求任意两个选中的数字 ...

  6. android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面

    Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //an ...

  7. 冒泡排序算法(Java)

     冒泡排序即每次遍历.相邻数字间进行比較,前者大于后者进行交换,不断将最大值后移,直至沉至最后位置:算法关键要点在于确定每次循环的边界. 后面两种算法则是对冒泡排序一定程度上的改良,但相对于其它排 ...

  8. 第三届蓝桥杯Java高职组决赛第三题

    题目描述: 某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如 ...

  9. wcf例子01

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  10. uva 1393 - Highways(容斥原理)

    题目连接:uva 1393 - Highways 题目大意:给定一个m∗n的矩阵,将矩阵上的点两两相连,问有多少条直线至少经过两点. 解题思路:头一次做这样的题目,卡了一晚上. dp[i][j]即为i ...