您的位置:首页 > 其它

zoj 3640 Help Me Escape(概率DP基础)

2015-04-05 22:15 417 查看
题意:

。。。

思路:

题面给了个大大的公式可能会吓到人 = =。。

不过看懂题就没什么了。

普通的概率dp,甚至不用变换方程式 = =!

Ei=P∗(∑(Ei+cj,i<=cj+1)+tj,i>cj)E_i = P*(\sum{(E_{i+c_j, i<=c_j}+1})+t_{j,i>c_j})

边界是E[i],i>max{cj}E[i], i>max\{c_j\}

int n, f, c[Maxn+5], t[Maxn+5];
double E[10005];

double solve() {
double e;
int mx = c[1];rep(i, 1, n) mx = max (mx, c[i]);
// 求出边界期望
e = 0;rep(i, 1, n) e += t[i];e /= n;
for (int i=mx;i>=f;--i) {
E[i] = 0;
for (int j=1;j<=n;++j) {
if (i>c[j]) E[i] += t[j];
else {
if (i+c[j] > mx) E[i] += e + 1;
else E[i] += E[i+c[j]] + 1;
}
}
E[i] /= n;
}
return E[f];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: