您的位置:首页 > 运维架构

HDU 4405 Aeroplane chess(期望DP)

2015-01-21 05:00 357 查看
思路:就按期望DP的思路就可以了,dp[i],表示在位置i的期望,转移分有飞机和没飞机考虑即可

代码:

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

const int N = 100005;

int n, m, to
;
double dp
;

int main() {
while (~scanf("%d%d", &n, &m) && n || m) {
int x, y;
memset(to, -1, sizeof(to));
while (m--) {
scanf("%d%d", &x, &y);
to[x] = y;
}
dp
= 0;
for (int i = n - 1; i >= 0; i--) {
dp[i] = 0.0;
if (to[i] != -1) {
dp[i] = dp[to[i]];
continue;
}
for (int j = 1; j <= 6; j++) {
int v = min(n, i + j);
dp[i] += (1.0 / 6) * dp[v];
}
dp[i] += 1.0;
}
printf("%.4lf\n", dp[0]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: