HDU 3853 LOOPS(概率DP)

题目大意:一个r*c的矩阵,给出了每个留在原来格子和往左往右一个格子的概率,求从(1,1)到(r,c)的期望。

注意一个p1=1这样的点的特殊情况。http://www.cnblogs.com/kuangbin/archive/2012/10/03/2711140.html

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define esp 1e-5
#define maxn 1005
double c1[maxn][maxn];
double c2[maxn][maxn];
double c3[maxn][maxn];
double e[maxn][maxn];
int main()
{
    int r,c;
    while(scanf("%d%d",&r,&c)!=EOF)
    {
        memset(e,0,sizeof(e));
    for(int i=1;i<=r;i++)
        for(int j=1;j<=c;j++)
    {
        scanf("%lf%lf%lf",&c1[i][j],&c2[i][j],&c3[i][j]);
    }
    for(int i=r;i>=1;i--)
        for(int j=c;j>=1;j--)
    {
        if(i==r&&j==c) continue;
        if(fabs(1-c1[i][j])<esp) continue;
        e[i][j]=(c2[i][j]*e[i][j+1]+c3[i][j]*e[i+1][j]+2)/(1-c1[i][j]);
      //  cout<<e[i][j]<<endl;
    }
    printf("%.3f\n",e[1][1]);
    }
    return 0;
}
				
时间: 2024-10-28 15:03:17

HDU 3853 LOOPS(概率DP)的相关文章

HDU 3853 LOOPS (概率dp)

LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Total Submission(s): 2931    Accepted Submission(s): 1209 Problem Description Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl). Homura wants to help

HDU 3853 LOOPS 概率dp(水

水水过~ #include <stdio.h> #include <cstring> #include <iostream> #include <map> #include <cmath> template <class T> inline bool rd(T &ret) { char c; int sgn; if(c=getchar(),c==EOF) return 0; while(c!='-'&&(c&l

hdu 3853 LOOPS (概率dp 逆推求期望)

题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 2630    Accepted Submission(s): 1081 Problem Description Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl). Homura wants to h

HDU 3853 期望概率DP

期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] ,  右移:[x][y]->[x][y+1]=p[x][y][1];  左移:[x][y]->[x+1][y]=p[x][y][2]; 问最后走到[r,c]的期望 dp[i][j]为从[i][j]点走到[r][c]的期望 有方程: dp[i][j]=    (dp[i][j]+2)*p[i][j][0]  +   (dp

LOOPS HDU - 3853 (概率dp):(希望通过该文章梳理自己的式子推导)

题意:就是让你从(1,1)走到(r, c)而且每走一格要花2的能量,有三种走法:1,停住.2,向下走一格.3,向右走一格.问在一个网格中所花的期望值. 首先:先把推导动态规划的基本步骤给出来. · 1.设变量:(注意:设置变量时,要能够使整个求解过程可以分为多个阶段.) 2.分析阶段决策,并写出决策函数.(也就是能体现前阶段决策后阶段关系的函数) 3.写出指标函数.(也是就是我们得出解的函数.) 先第一步:设置变量,我们分析这个题的是从(1,1)到(r, c)那么什么能体现"阶段"这个

HDU 3853 LOOPS (期望DP)

题意:给定一个 n * m的矩阵,然后你从 (1,1)到 (n,m),每次你有三种可能,不动,向右,向下,每次要消耗2个魔法,并且给定每个概率, 问你走出去的期望. 析:dp[i][j] 表示从 (i,j)到终点的概率.然后一路逆推回去就好. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <

[ACM] hdu 3853 LOOPS (概率DP,递推)

LOOPS Problem Description Akemi Homura is a Mahou Shoujo (Puella Magi/Magical Girl). Homura wants to help her friend Madoka save the world. But because of the plot of the Boss Incubator, she is trapped in a labyrinth called LOOPS. The planform of the

hdu 4870 Rating(概率DP&amp;高数消元)

Rating Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 714    Accepted Submission(s): 452 Special Judge Problem Description A little girl loves programming competition very much. Recently, she

HDU 4035Maze(概率DP)

HDU 4035   Maze 体会到了状态转移,化简方程的重要性 题解转自http://blog.csdn.net/morgan_xww/article/details/6776947 /** dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 (概率为ei) 3.和该点相连有m条边,随机走一条 求:走出迷宫所要走的边数的期望值. 设 E[i]表示

HDU 4089 Activation (概率dp 好题 + 难题)

Activation Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1842    Accepted Submission(s): 689 Problem Description After 4 years' waiting, the game "Chinese Paladin 5" finally comes out.