HDU-3854 LOOPS

http://acm.hdu.edu.cn/showproblem.php?pid=3853

LOOPS

Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)
Total Submission(s): 2263    Accepted Submission(s):
911

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
LOOPS is a rectangle of R*C grids. There is a portal in each grid except the
exit grid. It costs Homura 2 magic power to use a portal once. The portal in a
grid G(r, c) will send Homura to the grid below G (grid(r+1, c)), the grid on
the right of G (grid(r, c+1)), or even G itself at respective probability (How
evil the Boss Incubator is)!
At the beginning Homura is in the top left
corner of the LOOPS ((1, 1)), and the exit of the labyrinth is in the bottom
right corner ((R, C)). Given the probability of transmissions of each portal,
your task is help poor Homura calculate the EXPECT magic power she need to
escape from the LOOPS.

Input

The first line contains two integers R and C (2 <=
R, C <= 1000).

The following R lines, each contains C*3 real numbers,
at 2 decimal places. Every three numbers make a group. The first, second and
third number of the cth group of line r represent the probability of
transportation to grid (r, c), grid (r, c+1), grid (r+1, c) of the portal in
grid (r, c) respectively. Two groups of numbers are separated by 4
spaces.

It is ensured that the sum of three numbers in each group is 1,
and the second numbers of the rightmost groups are 0 (as there are no grids on
the right of them) while the third numbers of the downmost groups are 0 (as
there are no grids below them).

You may ignore the last three numbers of
the input data. They are printed just for looking neat.

The answer is
ensured no greater than 1000000.

Terminal at EOF

Output

A real number at 3 decimal places (round to),
representing the expect magic power Homura need to escape from the
LOOPS.

Sample Input

2 2

0.00 0.50 0.50  0.50 0.00 0.50

0.50 0.50 0.00 1.00 0.00 0.00

Sample Output

6.000

等于1的时候就要continue;

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
double e[2000][2000];
struct node
{
    double p1,p2,p3;
}a[2000][2000];
int main()
{
    int r,c,i,j;
    while(~scanf("%d%d",&r,&c))
    {
        memset(e,0,sizeof(e));
       for(i=1;i<=r;i++)
         for(j=1;j<=c;j++)
         {
             scanf("%lf%lf%lf",&a[i][j].p1,&a[i][j].p2,&a[i][j].p3);
         }
           e[r][c]=0;
         for(i=r;i>=1;i--)
           {
              for(j=c;j>=1;j--)
               {
                   if(i==r&&j==c)
                       continue;
                  if(a[i][j].p1==1)
                     continue;
                 e[i][j]=double(a[i][j].p2*e[i][j+1]+a[i][j].p3*e[i+1][j]+2)/double(1-a[i][j].p1);

               }
           }
        printf("%.3lf\n",e[1][1]);
    }
    return 0;
}

HDU-3854 LOOPS,布布扣,bubuko.com

时间: 2024-09-30 16:05:42

HDU-3854 LOOPS的相关文章

HDU 3854 Glorious Array(树状数组)

题意:给一些结点,每个结点是黑色或白色,并有一个权值.定义两个结点之间的距离为两个结点之间结点的最小权值当两个结点异色时,否则距离为无穷大.给出两种操作,一种是将某个结点改变颜色,另一个操作是询问当前距离小于K的结点有多少对,K是一个定值. 思路:先求最初时候小于k的结点有多少对,然后每次改变颜色的时候,统计该点左侧和右侧各有多少同色和异色的结点(这一步使用树状数组),分别处理就行.另外需要预处理离某个结点最近的两个距离小于K的结点的位置. 代码写的略乱. #include<cstdio> #

[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 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求期望啊)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 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

HDU 3853 LOOPS(概率dp 求期望)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 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

hdu 3853 LOOPS(期望)

http://acm.hdu.edu.cn/showproblem.php?pid=3853 求从[1,1]到[r,c]的所花power的期望,每走一步消耗的power是2,给出从[i,j]到[i,j],[i,j+1],[i+1][j]概率. dp[i][j]表示从[i,j]到[r,c]的消耗power的期望,已知终态dp[r][c] = 0,然后逆推. 很难想的是当在原地的概率为1时,走不到[r,c],状态转移方程中结果是INF,与题目要求相矛盾. #include <stdio.h> #i

hdu 3853 LOOPS(概率 dp 期望)

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 LOOPS

hdu 3853 LOOPS 动态规划

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 迷宫类的动态规划 首先要作个数学推导 假设留在原地.右移.下移的概率分别是a, b, c 用dp[i][j]表示在第i行第j格能走出去的期望步数 则有: dp[i][j] = a * (dp[i][j] + 1) + b * (dp[i][j+1] + 1) + c * (dp[i+1][j] + 1) 整理一下可得: dp[i][j] = 1/(1-a) * (a +  b * (dp[i]

hdu 3853 LOOPS DP

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

HDU 3853 LOOPS:期望dp【网格型】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 题意: 有一个n*m的网格. 给出在每个格子时:留在原地.向右走一格,向下走一格的概率. 每走一格会消耗2点体力. 问你从(1,1)到达终点(n,m)消耗体力的期望. 题解: 表示状态: dp[i][j] = rest steps(剩余路程花费体力的期望) i,j:现在的位置 找出答案: ans = dp[0][0] 如何转移: 期望dp的套路:考虑子期望... now: dp[i][j] 能