• hdu--3853--概率dp


    首先 ....

    让我说一句...  F M L 

    这几天被概率 区间dp折磨地死去活来  都太TM要智商了 太伤了啊。。。

    烦的一比..

    /////////////////////////////

    这题 真心算我这几天遇到的最简单的了...

    dp[ i ][ j ] =  p[ i ][ j ][ 0 ] * ( dp[ i ][ j ] + 2 ) + p[ i ][ j ][ 1 ] * ( dp[ i ][ j+1 ] +2 ) + p[ i ][ j ][ 2 ] * ( dp[ i+1 ][ j ] + 2 )

    p[ i ][ j ][ 0 ] + p[ i ][ j ][ 1 ] + p[ i ][ j ][ 2 ] = 1

    that's all

    //吐槽下hdu的G++   对于cin.sync_with_stdio(false)好像没起作用一样的  我tle ..改scanf printf就能ac 

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 int n , m;
     6 const int size = 1010;
     7 double p[size][size][3];
     8 double dp[size][size];
     9 
    10 void solve( )
    11 {
    12     for( int i = n ; i>=1 ; i-- )
    13     {
    14         for( int j = m ; j>=1 ; j-- )
    15         {
    16             if( p[i][j][0]==1 )
    17                 continue;
    18             dp[i][j] = ( p[i][j][1] * dp[i][j+1] + p[i][j][2] * dp[i+1][j] + 2 ) / ( 1-p[i][j][0] );
    19         }
    20     }
    21 }
    22 
    23 int main()
    24 {
    25     while( ~scanf("%d %d",&n,&m) )
    26     {
    27         memset( dp , 0 , sizeof(dp) );
    28         for( int i = 1 ; i<=n ; i++ )
    29         {
    30             for( int j = 1 ; j<=m ; j++ )
    31             {
    32                 scanf("%lf %lf %lf",&p[i][j][0],&p[i][j][1],&p[i][j][2] );
    33             }
    34         }
    35         solve( );
    36         printf("%.3lf
    ",dp[1][1] );
    37     }
    38     return 0;
    39 }
    View Code

    today:

      越是无心 越是会有好结果?

      越是有心 越是没有好结果?

      其实不是 只是期望值不同罢了

  • 相关阅读:
    Python爬虫 Urllib库的高级用法
    Python爬虫入门 Urllib库的基本使用
    Oracle wm_concat()函数
    linux cut命令详解
    linux sort命令详解(转)
    linux awk 命令详解
    linux sed命令详解
    Oracle 数据导入导出操作 (转)
    sqlldr用法
    Python os与sys模块解析
  • 原文地址:https://www.cnblogs.com/radical/p/4112878.html
Copyright © 2020-2023  润新知