乔明达太神,其实已经题解非常清楚了,我再推一遍吧。

  题目意思相当于有n个盒子,无差别投m次球,每个盒子的得分为每个盒子里的球的个数。

  第一问:

    假设这个球放在了第i个盒子里,那么 ∆ans = (mi + 1) ^ 2 - mi ^ 2  -->  ∆ans = 2mi + 1

    同时取期望 --> E(∆i) = 2E(∆mi) + 1

    i这个盒子有mi个球(假设已经投出了t个球)的期望为 t * pi 代入  E(∆i) = 2 * t * pi + 1

    特殊到一般,对于任意的i,i = 当前这个选定的i 的概率为pi,那么 E(∆) = sigma(pi * E(∆i)),代入,E(∆) = sigma(2 * t * pi ^ 2 + pi) = 1 + 2 * t * sigma(pi ^ 2).

    那么对于T = [0, m - 1],求和即可,ans = sigma(1 + 2 * t * sigma(pi ^ 2)),ans = m + m * (m - 1) * sigma(pi ^ 2).

  

  第二问:

    对于一个人,我们考虑他的是否中奖情况,将其定义为ci,ci 若为1则中奖,否则没有。那么答案为E(sigma(ci)) = sigma(E(ci)).

    E(ci) 为一个人中奖的概率,E(ci) = 1 - (1 - pi) ^ m.

  1. #include <bits/stdc++.h>
  2. #define rep(i, a, b) for (int i = a; i <= b; i++)
  3. #define drep(i, a, b) for (int i = a; i >= b; i--)
  4. #define REP(i, a, b) for (int i = a; i < b; i++)
  5. #define mp make_pair
  6. #define pb push_back
  7. #define clr(x) memset(x, 0, sizeof(x))
  8. #define xx first
  9. #define yy second
  10. using namespace std;
  11. typedef long long i64;
  12. typedef pair<int, int> pii;
  13. const int inf = ~0U >> ;
  14. const i64 INF = ~0ULL >> ;
  15. //*******************************
  16. const int maxn = ;
  17. int c[maxn];
  18. double Pow(double base, int num) {
  19. double ret = ;
  20. while (num) {
  21. if (num & ) ret *= base;
  22. base *= base;
  23. num >>= ;
  24. }
  25. return ret;
  26. }
  27. int main() {
  28. int n, m;
  29. scanf("%d%d", &n, &m);
  30. i64 sum();
  31. rep(i, , n) scanf("%d", &c[i]), sum += c[i];
  32. double ans1();
  33. static double p[maxn];
  34. rep(i, , n) p[i] = 1.0 * c[i] / sum;
  35. rep(i, , n) ans1 += p[i] * p[i];
  36. ans1 *= m;
  37. ans1 *= m - ;
  38. ans1 += m;
  39. printf("%.2lf\n", ans1);
  40. double ans2 = n;
  41. rep(i, , n) ans2 -= Pow(1.0 - 1.0 * p[i], m);
  42. printf("%.2lf\n", ans2);
  43. return ;
  44. }

Tsinsen-A1489 抽奖 【数学期望】的更多相关文章

  1. [BZOJ 3143][HNOI2013]游走(数学期望)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3143 分析: 易得如果知道了每条边经过的数学期望,那就可以贪心着按每条边的期望的大小赋 ...

  2. Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum (数学期望)

    题目链接 题意 : 一个m面的骰子,掷n次,问得到最大值的期望. 思路 : 数学期望,离散时的公式是E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn) p(xi)的是 ...

  3. 数学期望和概率DP题目泛做(为了对应AD的课件)

    题1: Uva 1636 Headshot 题目大意: 给出一个000111序列,注意实际上是环状的.问是0出现的概率大,还是当前是0,下一个还是0的概率大. 问题比较简单,注意比较大小: A/C & ...

  4. [2013山东ACM]省赛 The number of steps (可能DP,数学期望)

    The number of steps nid=24#time" style="padding-bottom:0px; margin:0px; padding-left:0px; ...

  5. 【BZOJ2134】单位错选(数学期望,动态规划)

    [BZOJ2134]单位错选(数学期望,动态规划) 题面 BZOJ 题解 单独考虑相邻的两道题目的概率就好了 没了呀.. #include<iostream> #include<cs ...

  6. 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)

    [BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...

  7. 【Luogu1291】百事世界杯之旅(动态规划,数学期望)

    [Luogu1291]百事世界杯之旅(动态规划,数学期望) 题面 洛谷 题解 设\(f[i]\)表示已经集齐了\(i\)个名字的期望 现在有两种方法: 先说我自己的: \[f[i]=f[i-1]+1+ ...

  8. 【BZOJ4872】分手是祝愿(动态规划,数学期望)

    [BZOJ4872]分手是祝愿(动态规划,数学期望) 题面 BZOJ 题解 对于一个状态,如何求解当前的最短步数? 从大到小枚举,每次把最大的没有关掉的灯关掉 暴力枚举因数关就好 假设我们知道了当前至 ...

  9. 【BZOJ3143】游走(高斯消元,数学期望)

    [BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...

  10. 【BZOJ1076】奖励关(动态规划,数学期望)

    [BZOJ1076]奖励关(动态规划,数学期望) 题面 懒,粘地址 题解 我也是看了题解才会做 看着数据范围,很容易想到状压 然后,设\(f[i][j]\)表示当前第\(i\)轮,状态为\(j\)的期 ...

随机推荐

  1. img图片inline-block总结

    <div style="font-size:0;"> <img data-src="http://image.zhangxinxu.com/image/ ...

  2. IDL 实现求算 DEM 坡度坡向

    关于坡度坡向的定义,请Google之. 源码: IDL 源码PRO ASPECT_SLOPE,DEM,ASPECT = ASPECT,SLOPE=SLOPE,PIXELSIZE = PIXELSIZE ...

  3. HDU 3552 I can do it!

    脑洞题.http://blog.csdn.net/dgq8211/article/details/7748078 #include<cstdio> #include<cstring& ...

  4. int *p[4]与int (*q)[4]的区别

    以上定义涉及两个运算符:“*”(间接引用).“[]”(下标),“[]”的优先级别大于“*”的优先级别. 首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4]:剩下的 ...

  5. storm的并发

    1 storm并行的基本概念 storm集群中的一个机器可以运行一个或者多个worker,对应于一个或者多个topologies. 1个worker进程运行1个或多个excutor线程.每个worke ...

  6. notify vs nofifyall

    http://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again Do you want to tell ...

  7. java集合框架工具类Collections,集合的操作

    1 import java.util.*; public class asList { public static void main(String args[]) { // int arr[] = ...

  8. jQuery常用及基础知识总结(二)

    JQuery Effects 方法说明 show( ) 显示隐藏的匹配元素.show( speed, [callback] ) 以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数.h ...

  9. u-boot添加一个hello命令

    1.在common目录下建立一个cmd_hello.c文件 2.仿照/common/cmd_bootm.c文件修改,把cmd_bootm.c头文件复制过来 3.再复制do_bootm.U_BOOT_C ...

  10. C# dev gridcontrol中添加checkbox复选框

    文章来源 csdn weinierbian http://blog.csdn.net/weinierbian/article/details/6255402 添加一列,FieldName为 " ...