您的位置:首页 > 其它

hdu 4405 概率DP

2013-08-10 10:30 309 查看
直接上代码......

AC代码如下:

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

double dp[100001];
int nexts[100001];

int main(){
int N, M;
while( cin >> N >> M && !( N == 0 && M == 0 ) ){
memset( dp, 0, sizeof( dp ) );
memset( nexts, 0, sizeof( nexts ) );
for( int i = 0; i < M; i++ ){
int temp1, temp2;
cin >> temp1 >> temp2;
nexts[temp1] = temp2;
}
for( int i = N - 1; i >= 0; i-- ){
if( nexts[i] != 0 ){
dp[i] = dp[nexts[i]];
}else{
for( int j = 1; j <= 6; j++ ){
int k = i + j >= N ? N : i + j;
dp[i] += ( dp[k] + 1 ) / 6.0;
}
}
}
printf( "%.4lf\n", dp[0] );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: