• LightOj_1317 Throwing Balls into the Baskets


    题目链接

    题意:

      有N个人, M个篮框, 每个人投进球的概率是P。

      问每个人投K次后, 进球数的期望。

    思路:

      每个人都是相互独立的, 求出一个人进球数的期望即可。

      进球数和篮框的选择貌似没有什么关系, 所以给的这个M并没有什么卵用。。。。

      每个人进球数的期望为:E = sigma (i * C(K, i) * p ^ i * (1 - p) ^ (k - i));

      总的进球数期望为:N * E

    代码:

      

     1 #include <cmath>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cstdlib>
     5 #include <ctime>
     6 #include <set>
     7 #include <map>
     8 #include <list>
     9 #include <queue>
    10 #include <string>
    11 #include <vector>
    12 #include <fstream>
    13 #include <iterator>
    14 #include <iostream>
    15 #include <algorithm>
    16 using namespace std;
    17 #define LL long long
    18 #define INF 0x3f3f3f3f
    19 #define MOD 1000000007
    20 #define eps 1e-6
    21 #define MAXN 20
    22 #define MAXM 100
    23 #define dd cout<<"debug"<<endl
    24 #define p(x) printf("%d
    ", x)
    25 #define pd(x) printf("%.7lf
    ", x)
    26 #define k(x) printf("Case %d: ", ++x)
    27 #define s(x) scanf("%d", &x)
    28 #define sd(x) scanf("%lf", &x)
    29 #define mes(x, d) memset(x, d, sizeof(x))
    30 #define do(i, x) for(i = 0; i < x; i ++)
    31 int n, m, k;
    32 double p;
    33 double C[MAXN][MAXN];
    34 void init()
    35 {
    36     C[0][0] = 1;
    37     for(int i = 1; i < MAXN; i ++)
    38     {
    39         C[i][0] = 1;
    40         for(int j = 1; j <= i; j ++)
    41             C[i][j] = C[i-1][j] + C[i-1][j-1];
    42     }
    43 }
    44 double cal(int x)
    45 {
    46     double p_temp = 1.0;
    47     for(int i = 1; i <= x; i ++)
    48         p_temp *= p;
    49     for(int j = 1; j <= n - x; j ++)
    50         p_temp *= (1.0 - p);
    51     return x * C[n][x] * p_temp;
    52 }
    53 
    54 int main()
    55 {
    56     int T;
    57     int kcase = 0;
    58     init();
    59     scanf("%d", &T);
    60     while(T --)
    61     {
    62         scanf("%d %d %d %lf", &n, &m, &k, &p);
    63         double ans = 0;
    64         for(int i = 1; i <= n; i ++)
    65             ans += cal(i);
    66         ans *= k;
    67         k(kcase), pd(ans);
    68     }
    69     return 0;
    70 }
    View Code
  • 相关阅读:
    设置了透明以后,会有严重残影
    “真正的工作不是说的天花乱坠”,Torvalds 说, “而是在于细节”(Torvalds 认为成功的项目都是99%的汗水和1%的创新)
    iOS和Android使用MQTT协议实现消息推送和即时通讯(替代XMPP,已经有TMS MQTT)
    avalonjs1.5 入门教程
    Grunt 之 Connect
    性能
    JQUERY省、市、县城市联动选择
    Meteor全栈开发平台
    微型工作流引擎设计
    微型工作流引擎-功能设计
  • 原文地址:https://www.cnblogs.com/By-ruoyu/p/4726578.html
Copyright © 2020-2023  润新知