0
点赞
收藏
分享

微信扫一扫

HDU 4405 Aeroplane chess——期望dp

夏沐沐 2022-08-17 阅读 28


水题

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e5 + 20;
double dp[maxn];
int fly[maxn];
int to(int x) {
while (fly[x]) x = fly[x];
return x;
}
int main() {
int n, m;
while (~scanf("%d%d", &n, &m) && (n || m)) {
for (int i = 0; i <= n+10; i++) dp[i] = 0, fly[i] = 0;
int x, y;
for (int i = 1; i <= m; i++) {
scanf("%d%d", &x, &y);
fly[x] = y;
}
for (int i = n-1; i >= 0; i--) {
dp[i] = 1.0 / 6.0 * (dp[to(i+1)]+dp[to(i+2)]+dp[to(i+3)]+dp[to(i+4)]+dp[to(i+5)]+dp[to(i+6)]) + 1;
}
printf("%.4f\n", dp[0]);
}
return 0;
}

 

举报

相关推荐

0 条评论