zoukankan      html  css  js  c++  java
  • HDU 3853 LOOPS

    题意:对于每一格,都可以往右走,原地不走,往下走,概率分别为a[i],b[i],c[i](每一个格子与其他格子的概率不一定相同)。在R*C的棋盘上(输入数据保证不会走出棋盘),求从(0, 0)走到(R-1, C-1)所需要的步数*2的期望是多少。

    解法:就是最普通的dp,从(R-1, C-1)往(0, 0)算就好。设dp[i][j]表示达到目标状态的步数期望*2。dp[i][j] = dp[i][j]*a[k] + dp[i][j+1]*b[k] + dp[i+1][j]*c[k]。注意,如果a[k]= 1,应该直接dp[i][j] = 0; continue。

    tag: 概率DP, 水题

     1 /*
     2  * Author:  Plumrain
     3  * Created Time:  2013-11-07 23:13
     4  * File Name: DP-HDU-3853.cpp
     5  */
     6 #include <iostream>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <cmath>
    10 
    11 using namespace std;
    12 
    13 #define CLR(x) memset(x, 0, sizeof(x))
    14 const double eps = 1e-8;
    15 struct grd{
    16     double p[3], x[3];
    17 };
    18 
    19 int r, c;
    20 grd a[1005][1005];
    21 double d[1005][1005];
    22 
    23 void init()
    24 {
    25     for (int i = 0; i < r; ++ i)
    26         for (int j = 0; j < c; ++ j)
    27             for (int k = 0; k < 3; ++ k)
    28                 scanf ("%lf", &a[i][j].p[k]);
    29 }
    30 
    31 double DP()
    32 {
    33     CLR (d);
    34     for (int i = r-1; i >= 0; -- i)
    35         for (int j = c-1; j >= 0; -- j)
    36             if (!(i == r-1 && j == c-1)){
    37                 if (fabs(a[i][j].p[0] - 1) < eps) continue;
    38                 d[i][j] = (d[i][j+1]*a[i][j].p[1] + d[i+1][j]*a[i][j].p[2] + 2) / (1 - a[i][j].p[0]);
    39             }
    40     return d[0][0];
    41 }
    42 
    43 int main()
    44 {
    45     while (scanf ("%d%d", &r, &c) != EOF){
    46         init();
    47         printf ("%.3lf
    ", DP());
    48     }
    49     return 0;
    50 }
    View Code
    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    Java的异常类的整理
    java中tostring的重载
    java中的引用于c++的指针的相互代替(就以创建简单的栈去讲解)
    Java版单词搜索
    Java/C++的正则表达式的总结归纳
    某个整数的全排列问题
    DFS+单词搜索
    一维数组组合
    离线升级OpenSSH详细步骤 ——安全漏洞修复(实战篇 Centos 6.5/6.10 操作系统)
    Mysql子查询
  • 原文地址:https://www.cnblogs.com/plumrain/p/HDU_3853.html
Copyright © 2011-2022 走看看