zoukankan      html  css  js  c++  java
  • zoj 2949

    题目:有2中面条各n碗。每次抛硬币推断吃哪一种(到一种吃完为止)。问抛硬币的数学期望。

    分析:动态规划。概率dp。求出每种结束状态(即,有一种吃完)的概率,分别乘以步长即为期望。

                 大黄解法:状态位剩余的碗数,逆向求解,状态方程:

                    DP[ i ][ j ] = (DP[ i-1 ][ j ]+DP[ i ][ j-1 ])/2 + 1 { orz~~ (所有20行代码就能搞定) }。

    说明:(2011-09-27 03:22)。

    #include <stdio.h>
    #include <stdlib.h>
    
    double p[ 1002 ][ 1002 ];
    double q[ 1002 ];
    
    int main()
    {
        for ( int i = 0 ; i <= 1000 ; ++ i )
        for ( int j = 0 ; j <= 1000 ; ++ j )
            p[ i ][ j ] = 0.0;
        p[ 0 ][ 0 ] = 1.0;
        for ( int i = 0 ; i <= 1000 ; ++ i )
        for ( int j = 0 ; j <= 1000 ; ++ j ) {
            p[ i+1 ][ j ] += p[ i ][ j ]*0.5;
            p[ i ][ j+1 ] += p[ i ][ j ]*0.5;
        }
        
        for ( int i = 1 ; i <= 1000 ; ++ i ) {
            double sum = p[ i ][ 0 ]*i;
            for ( int j = i-1 ; j >= 1 ; -- j ) 
                sum += (i+j)*(p[ i ][ j ]-p[ i ][ j-1 ]*0.5);
            q[ i ] = sum*2.0;
        }
        
        int t,n;
        while ( scanf("%d",&t) != EOF ) 
        while ( t -- ) {
            scanf("%d",&n);
            printf("%.2lf
    ",q[ n ]);
        }
        return 0;
    }

  • 相关阅读:
    Linux--shell三剑客<sed>--07
    Linux--shell交互输入与循环语句--06
    Linux--shel分支语句--05
    Linux--shell grep与正则表达式--04
    Linux--shell编程原理--03
    Linux--shell重定向与文件处理命令--02
    Linux--shell的基本特性--01
    Docker数据卷
    Docker容器
    Docker的安装
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7219425.html
Copyright © 2011-2022 走看看