zoukankan      html  css  js  c++  java
  • hdu6568 Math (概率dp)

    题目链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=6568

    题意:

    在$0$到$L$的坐标轴运输货物,在每个整数点可能丢失货物,丢失概率为$p$,丢失后可能发现丢失,发现概率为$q$

    在$L$点如果没携带货物一定会发现,求到达$L$的期望路程

    数据范围:

    $1leq Lleq 100000$

    $0< p,q< 1$

    分析: 

    定义$dp[i]$为在$i$点丢失货物后回到$i$点的期望路程

    $dp[L]=0$

    $dp[i]=(1-q) imes (dp[i+1]+2)$

    i-1到i的花费为$x=(1-p)+p imes(dp[i-1]+x)$

    解出$x$即可

    ac代码:

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int maxn = 1e5 + 5;
    double p,q;//丢失和丢失后发现的概率
    double dp[maxn];//在i点丢失后回到i点的期望路程
    int main()
    {
        int L;
        while(scanf("%d %lf %lf",&L,&p,&q)==3){
            dp[L]=0;
            for(int i=L-1;i>=0;i--)
                dp[i]=(1-q)*(dp[i+1]+2.0);
            double ans=0;
            for(int i=1;i<=L;i++)//i-1到i的花费为x=(1-p)+p*(dp[i-1]+x)
                ans+=((1-p)+dp[i-1]*p)/(1-p);
            printf("%.12f
    ",ans);
        }
        return 0;
    }
    

      

  • 相关阅读:
    操作集锦
    大吉大利(算贡献)
    96. 奇怪的汉诺塔
    P760通天之汉诺塔
    First Last Sorting
    9.12小结
    day_06
    day_05作业
    day_05
    day_04
  • 原文地址:https://www.cnblogs.com/carcar/p/11288626.html
Copyright © 2011-2022 走看看