zoukankan      html  css  js  c++  java
  • 微软2017年预科生计划在线编程笔试 A Legendary Items

    思路:

    获得第i(i = 0, 1, ..., n - 1)件物品的概率仅由公式p / (1 << i)决定,所以获得这i件物品之间是相互独立的。迭代计算获得所有i件物品的期望再求和即可。不要被题目中的树形结构所蒙蔽。

    实现:

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 
     5 int p, q, n;
     6 
     7 double get_item(int i)
     8 {
     9     int pi = i < 7 ? p / (1 << i) : 0;
    10     double tmp = 1;
    11     double E = 0;
    12     for (int j = 0; j <= 100; j++)
    13     {
    14         E += tmp * (j + 1) * pi * 0.01;
    15         if (pi == 100)
    16             return E;
    17         tmp *= 1 - pi * 0.01;
    18         pi += q;
    19         if (pi >= 100)
    20         {
    21             pi = 100;
    22         }
    23     }
    24     return E;
    25 }
    26 
    27 int main()
    28 {
    29     double ans = 0;
    30     cin >> p >> q >> n;
    31     for (int i = 0; i < n; i++)
    32     {
    33         ans += get_item(i);
    34     }
    35     printf("%.2lf
    ", ans);
    36     return 0;
    37 }
  • 相关阅读:
    FileWatcher
    virtual table(有180个评论)
    this 指针
    docker -ce(社区免费版)
    vue-cli
    CAP理论、BASE理论
    B+树和LSM存储引擎代表树和B-树
    CPU高速缓存
    Python&基础环境搭建
    二叉树
  • 原文地址:https://www.cnblogs.com/wangyiming/p/6664958.html
Copyright © 2011-2022 走看看