码迷,mamicode.com
首页 > 其他好文 > 详细

CF 441E Valera and Number

时间:2019-04-28 09:57:27      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:print   desc   ace   http   for   codeforce   期望   ble   clu   

CF 441E

Description

一共执行\(k\)次,每次有\(p\%\)\(x * 2\),有\((100 - p)\%\)\(x + 1\)。问二进制下\(x\)末尾期望\(0\)的个数。

Solution

\(f[i][j]\)为执行第\(i\)次后\(x + j\)末尾期望\(0\)的个数

加一:$f[i + 1][j - 1] = f[i + 1][j - 1] + (100 - p)% * f[i][j]; $

乘二:\(f[i + 1][j * 2] = f[i + 1][j * 2] + p\% * (f[i][j] + 1);\)

#include<bits/stdc++.h>
using namespace std;
int x, k;
double p, p1;
double f[300][300];
int main() {
    scanf("%d%d%lf", &x, &k, &p);
    p /= 100, p1 = 1.0 - p;
    for (int i = 0; i <= k; i ++) 
        for (int j = x + i; j % 2 == 0; j /= 2)
            f[0][i] ++;
    for (int i = 0; i < k; i ++)
        for (int j = 0; j <= k; j ++) {
            if (j)
                f[i + 1][j - 1] += p1 * f[i][j]; // + 1
            if (j * 2 <= k)
                f[i + 1][j * 2] += p * (f[i][j] + 1); // * 2 
        }
    printf("%.10f\n", f[k][0]);
    return 0;
}

CF 441E Valera and Number

标签:print   desc   ace   http   for   codeforce   期望   ble   clu   

原文地址:https://www.cnblogs.com/wjnclln/p/10781613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!