HDU 4405 Aeroplane chess(12年金华网络赛-F题-期望DP)
2012-09-23 23:48
405 查看
题目链接:Click here~~
题意:
有一排 n+1 个格子,编号 0~n ,有些格子可以坐飞机向前飞,飞到某个指定的格子。
然后从0出发,每次掷个骰子(1~6点),然后走对应的步数,若走到有飞机的地方,则飞过去。否则,掷骰子。
问走到编号为n的格子或者走到它后面的关于掷骰子次数的期望是多少。
解题思路:
设 P[i] 表示到达格子 i 的概率,E[i] 表示到达格子 i 掷骰子次数的期望。
首先,对于到达格子 i 这一事件,只有两种可能:坐飞机过来的 or 掷骰子过来的。
若它是从格子 k 坐飞机过来的,则 P[i]1 = P[k]。
若它是从格子 k 掷骰子过来的,则 P[i]2 = P[k] * 1/6 ( i-6 <= k <= i-1)。
即 P[i] 等于上述两种情况的概率和。
设掷骰子次数为 t ,则 E[i] = sum{t * P[i] * p(i,t)}。(p(i,t) 表示到达格子 i 的条件下掷骰子次数为 t 的概率)
若它是从格子 k 坐飞机过来的,则 p(i,t) = p(k,t) ,又 P[i]1 = P[k],从而 E[i]1 = E[k]。
若它是从格子 k 掷骰子过来的,则 p(i,t) = p(k,t-1),又 P[i]2 = P[k] * 1/6,
则 E[i] = 1/6 * sum{(t-1) * P[k] * p(k,t-1)} + 1/6 * P[k] * sum{ p(k,t-1) } ,从而E[i]2 = 1/6 * ( E[k] + P[k] )。
同理 E[i] 等于上述两种情况的期望和。
如此,便可从前向后递推求解。
题意:
有一排 n+1 个格子,编号 0~n ,有些格子可以坐飞机向前飞,飞到某个指定的格子。
然后从0出发,每次掷个骰子(1~6点),然后走对应的步数,若走到有飞机的地方,则飞过去。否则,掷骰子。
问走到编号为n的格子或者走到它后面的关于掷骰子次数的期望是多少。
解题思路:
设 P[i] 表示到达格子 i 的概率,E[i] 表示到达格子 i 掷骰子次数的期望。
首先,对于到达格子 i 这一事件,只有两种可能:坐飞机过来的 or 掷骰子过来的。
若它是从格子 k 坐飞机过来的,则 P[i]1 = P[k]。
若它是从格子 k 掷骰子过来的,则 P[i]2 = P[k] * 1/6 ( i-6 <= k <= i-1)。
即 P[i] 等于上述两种情况的概率和。
设掷骰子次数为 t ,则 E[i] = sum{t * P[i] * p(i,t)}。(p(i,t) 表示到达格子 i 的条件下掷骰子次数为 t 的概率)
若它是从格子 k 坐飞机过来的,则 p(i,t) = p(k,t) ,又 P[i]1 = P[k],从而 E[i]1 = E[k]。
若它是从格子 k 掷骰子过来的,则 p(i,t) = p(k,t-1),又 P[i]2 = P[k] * 1/6,
则 E[i] = 1/6 * sum{(t-1) * P[k] * p(k,t-1)} + 1/6 * P[k] * sum{ p(k,t-1) } ,从而E[i]2 = 1/6 * ( E[k] + P[k] )。
同理 E[i] 等于上述两种情况的期望和。
如此,便可从前向后递推求解。
#include <stdio.h> #include <string.h> #define N 100010 const double p = 1.0/6; struct TT { double E,P; int next; }a ; int main() { int n,m,x,y; while(scanf("%d%d",&n,&m),n+m) { memset(a,0,sizeof(a)); while(m--) { scanf("%d%d",&x,&y); a[x].next = y; } a[0].E = 0 , a[0].P = 1; for(int i=0;i<n;i++) { if(a[i].next) { a[ a[i].next ].E += a[i].E; a[ a[i].next ].P += a[i].P; } else for(int j=1;j<=6;j++) { a[i+j].E += p * (a[i].E + a[i].P); a[i+j].P += p * a[i].P; } } double ans = 0; for(int i=0;i<=5;i++) ans += a[n+i].E; printf("%.4f\n",ans); } return 0; }
相关文章推荐
- hdu 4405 Aeroplane chess 2012年金华区域赛网络赛 概率dp求期望
- HDU 4405 - Aeroplane chess (概率DP 求期望)
- HDU 4405 Aeroplane chess(全期望公式-概率dp)
- HDU 4405 Aeroplane chess(概率DP求期望)
- HDU 4405 Aeroplane chess (概率DP & 期望)
- HDU 4405 Aeroplane chess 期望dp
- hdu 4405 Aeroplane chess (概率DP+求期望)
- hdu 4405 Aeroplane chess(概率DP 求期望__附求期望讲解方法)
- hdu 4405 Aeroplane chess【概率DP求期望】
- HDU 4405 Aeroplane chess (概率DP求期望)
- hdu 4405 Aeroplane chess (期望dp入门)
- hdu 4405 Aeroplane chess(很水的期望DP)
- HDU 4405 Aeroplane chess (DP求期望) #by Plato
- HDU 4405 Aeroplane chess(期望DP)
- HDU 4405 Aeroplane chess (概率-期望DP)【模板】
- HDU 4405 Aeroplane chess(概率DP求期望)
- HDU-4405 Aeroplane chess(概率DP求期望)
- HDU 4405 Aeroplane chess (概率DP求期望)
- HDU 4405 Aeroplane chess(概率dp,数学期望)
- hdu 4405 Aeroplane chess(简单概率dp 求期望)