hdu4405--Aeroplane chess+概率期望dp

首先推荐一篇很好的如何概率期望问题的入门文章:点击打开链接

昨天比赛的时候面对这道题的第一想法是依照数学期望的定义来做,即依次求出某个点扔i次骰子能到达n点的概率,然后由期望的定义就可以求出答案了。但显然这在程序上是不可能实现的。

今天看了那篇文章后才知道自己的想法是大错特错的;求解这种问题应该采用一种递推的思路,即每次只考虑一次转移后当前状态的期望,然后我们依次考虑每个节点就可以得到一个方程组,然后就只需要求解这个方程组就行了。

当然对于如何求解这个方程组,我们可以采用高斯消元法,当然如果这个方程是递推形式的(如这个题)我们可以直接递推求解就行。

下面就以题目的样例一具体解说一下求解过程

定义Ei表示第i个点到达第n点及其以后点的期望

对于第一个样例n=2

E0=1/6*E1+1/6*E2+1 (加1是因为这是再第一个点扔了一次骰子后的情况,另外E3---E6都是等于E2=0的,所以不写)

E1=1/6*E2+1

然后我们知道E2=0 所以只要先求出E1然后再求出E0就行,即求解过程就是一个倒退的过程。

最后对于这个题目,还定义了一种”飞行线“,对于这个情况,如果某个点直接和其后面的点相连,那么它的期望就等于后面那个点的期望不需要进行状态转移。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

double f[100010];
int m[100010];

int main()
{
     int n,k;
     while(scanf("%d%d",&n,&k))
     {
             if(n+k==0)
                 break;
             memset(m,-1,sizeof(m));
             for(int i=0;i<k;i++)
             {
                    int x,y;
                    scanf("%d%d",&x,&y);
                    m[x]=y;
             }
             memset(f,0,sizeof(f));
             for(int i=n-1;i>=0;i--)
             {
                    if(m[i]!=-1)
                       f[i]=f[m[i]];
                    else
                    {
                         for(int j=1;j<=6;j++)
                         {
                               if(i+j<=n)
                                  f[i]+=1.0/6*f[i+j];
                         }
                         f[i]+=1.0;
                    }
             }
             printf("%.4lf\n",f[0]);
     }
   return 0;
}
时间: 2024-11-09 14:18:22

hdu4405--Aeroplane chess+概率期望dp的相关文章

HDU - 4405 Aeroplane chess(期望dp)

题意:沿着x轴从0走到大于等于N的某处,每一步的步数由骰子(1,2,3,4,5,6)决定,若恰好走到x轴上某飞行路线的起点,则不计入扔骰子数.问从0走到大于等于N的某处的期望的扔骰子次数. 分析: 1.dp[i]表示从位置i到终点期望的扔骰子次数. 2.很显然倒着往前推,因为从起点0开始,扔骰子的次数有很多种可能,难以计算,但是dp[N]很显然是0,不需要扔骰子即可到达终点. 3.假设当前位于位置i,根据骰子数可能到达的位置有i + j(j=1,2,3,4,5,6),到达其中每个位置的概率都是1

[ACM] hdu 4405 Aeroplane chess (概率DP)

Aeroplane chess Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six faces with equal probability to face up and the number

【BZOJ-1419】Red is good 概率期望DP

1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 660  Solved: 257[Submit][Status][Discuss] Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一行输入两个数R,B,其值在0到5000之间 Output 在最优策略下平均能得到多少钱

CF148D--Bag of mice+概率期望dp

第一道概率期望dp:) 其实和一般的dp也差不多,只要状态选好就行了. 定义dp[i][j]表示还剩i只白老鼠j只黑老鼠时候公主赢得概率. 则:1.公主选白老鼠,直接赢,概率:i/(i+j) 2.公主选黑老鼠 1)龙选黑老鼠,逃走黑老鼠:概率:j/(i+j)*(j-1)/(i+j-1)*(j-2)/(i+j-2) 2)  龙选黑老鼠,逃走白老鼠:概率:j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2) 3) 龙选白老鼠,这样公主是必输的,不用考虑 然后dp[i][j]等于以上概率之和

Codeforces - 1264C - Beautiful Mirrors with queries - 概率期望dp

一道挺难的概率期望dp,花了很长时间才学会div2的E怎么做,但这道题是另一种设法. https://codeforces.com/contest/1264/problem/C 要设为 \(dp_i\) 表示第 \(i\) 个格子期望经过多少次,所以 \(dp_{n+1}=1\). https://www.cnblogs.com/suncongbo/p/11996219.html 原文地址:https://www.cnblogs.com/KisekiPurin2019/p/12063633.ht

hdu 4405 Aeroplane chess(概率DP 求期望__附求期望讲解方法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six faces with equal p

hdu 4405 Aeroplane chess 概率dp入门题

Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six faces with equal probability to face up and the numbers on the faces are 1,2,3

HDU 4405 Aeroplane chess 概率DP 水题

Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2327    Accepted Submission(s): 1512 Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids lab

hdu4405——Aeroplane chess

Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1760    Accepted Submission(s): 1181 Problem Description Hzz loves aeroplane chess very much. The chess map contains N+1 grids la