标签:des style color io os ar java for strong
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)2 0 8 3 2 4 4 5 7 8 0 0
1.1667 2.3441
题意:有n个格子,掷色子的掷出的数目就是你一次到移动格数。其中有m个飞行通道可以让你直接从第xi格
飞到第yi格。问你走到终点的期望是多少。
思路: dp[i] 表示 当前在第i格走到终点的期望。
当i不是飞行通道的起点时: dp[i] =1.0+ (dp[i+1]+dp[i+2]+dp[i+3]+dp[i+4]+dp[i+5]+dp[i+6])/6.0;
当i是飞行通道的起点时:
dp[Xi] = dp[Yi] (因为Xi可直接到Yi,并且不需要掷色子);
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=100050;
int n,m,mark,x,y,pre[N];
double dp[N];
void input()
{
memset(pre,-1,sizeof(pre));
for(int i=0; i<m; i++)
{
scanf("%d %d",&x,&y);
pre[x]=y;
}
memset(dp,0,sizeof(dp));
}
void solve()
{
for(int i=n-1;i>=0;i--)
{
if(pre[i]!=-1) dp[i]=dp[pre[i]];
else
{
for(int j=1;j<=6;j++) dp[i]+=dp[i+j];
dp[i]=dp[i]/6.0+1.0;
}
}
printf("%.4lf\n",dp[0]);
}
int main()
{
while(scanf("%d %d",&n,&m)!=EOF)
{
if(n==0 && m==0) break;
input();
solve();
}
return 0;
}
hdu 4405 Aeroplane chess (概率DP+求期望)
标签:des style color io os ar java for strong
原文地址:http://blog.csdn.net/u012596172/article/details/40125391