• hdu4405Aeroplane chess 概率dp水题


    //从0到n有n+1个格子
    //对于格子i,掷一次骰子的数为x。那么能够从位置i到位置i+x
    //格子之间有连线,假设格子a和b有连线,那么从a到b不用掷骰子
    //求从0到n的骰子掷的次数的期望
    //dp[i] = 1/6*segma(dp[k]) + 1 (i<=k<=i+6)
    #include<cstdio>
    #include<iostream>
    #include<cstring>
    using namespace std ;
    const int maxn = 100000 ;
    double dp[maxn] ;
    int line[maxn] ;
    int main()
    {
        int n , m ;
        while(scanf("%d%d" , &n  ,&m) && n+m)
        {
            memset(line , -1 , sizeof(line)) ;
            memset(dp , 0 ,sizeof(dp)) ;
            int a , b ;
            for(int i = 1;i <= m ;i++)
            {
                scanf("%d%d" ,&a , &b) ;
                line[a] = b ;
            }
            for(int i = n-1 ;i >= 0 ;i--)
            {
                if(line[i] != -1){dp[i] = dp[line[i]] ;continue;}
                for(int k = i + 1;k <= i+6 ;k++)
                dp[i] += ((double)1/(double)6)*dp[k];
                dp[i] += 1 ;
            }
            printf("%.4lf " , dp[0]) ;
        }
        return 0 ;
    }

  • 相关阅读:
    npm 设置淘宝镜像
    JS字符串首字母大写
    类与面向对象基础(三)
    (转)php简单工厂模式实例讲解
    类与面向对象基础(二)
    类与面向对象基础(一)
    php连接数据库
    php中使用指针进行函数操作
    PHP基础之数组
    PHP正则表达式
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6786263.html
Copyright © 2020-2023  润新知