zoukankan      html  css  js  c++  java
  • ZOJ 3468 Dice War【PD求概率】


    ZOJ 3468 Dice War

    2010ZOJ月赛B题
    大意:有两堆筛子,个数分别为a,b,
    求第一堆筛子点数和大于第二堆筛子点数和的概率
    算法DP,注意精度,比赛时就死在这里了~~~~(>_<)~~~~

    #include<stdio.h>
    #include
    <string.h>
    constint N =490;
    constint M =9;
    double dp[M][N];
    double sum[M][N];
    void init()
    {
    int i,j,k;
    for(i=0;i<M;i++)
    for(j=0;j<N;j++)
    dp[i][j]
    =0;
    for(i=1;i<=6;i++)
    dp[
    1][i]=1;


    for(i=2;i<M;i++)
    {
    for(k=0;k<N;k++)
    for(j=1;j<=6;j++)
    {
    dp[i][k
    +j]+=dp[i-1][k];
    }


    }

    for(i=1;i<M;i++)
    {
    int upper=i*6;
    sum[i][upper]
    =dp[i][upper];
    for(k=upper-1;k>=0;k--)
    sum[i][k]
    =sum[i][k+1]+dp[i][k];
    }
    }
    int main()
    {
    int a,b;
    init();
    while(scanf("%d%d",&a,&b)!=EOF)
    {
    double pre=1;
    double ans =0;
    // while(a>1)
    if(a>1)
    {
    double tans =0;
    int i,j;
    int ub=b*6;
    for(i=b;i<=ub;i++)
    tans
    =tans+sum[a][i+1]*dp[b][i];
    int ab=a+b;
    while(ab--)tans/=6;
    ans
    =ans+tans*pre;
    pre
    = (1-tans)*pre;

    a
    =a-1;
    // b++;
    }

    printf(
    "%.16lf\n",ans);
    }
    return0;
    }
  • 相关阅读:
    [已解决] Python logging 重复打印日志信息
    scrapy
    Python 元编程
    MySQL性能优化 分区
    SQL Mode
    Golang 接口
    Python partial
    栈、队列(链表实现)
    Golang 位向量
    Java50题——学习以及思考
  • 原文地址:https://www.cnblogs.com/AndreMouche/p/1953266.html
Copyright © 2011-2022 走看看