zoukankan      html  css  js  c++  java
  • CF 441E Valera and Number

    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
    ", f[k][0]);
        return 0;
    }
    
  • 相关阅读:
    Unstar A File:
    star 一个文件
    列出大星号文件
    删除用户
    curl -d
    创建用户
    Check Account Info
    List Accounts
    认证ping
    python 解接口返回的json字符串
  • 原文地址:https://www.cnblogs.com/wjnclln/p/10781613.html
Copyright © 2011-2022 走看看