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 }
  • 相关阅读:
    SQL Server创建索引的技巧分析
    SQL Server创建索引
    kmp算法的应用
    相交环的面积
    Rebranding
    Olympiad
    找新朋友
    卡特兰数
    越狱
    Wolf and Rabbit
  • 原文地址:https://www.cnblogs.com/wangyiming/p/6664958.html
Copyright © 2011-2022 走看看