Tsinsen-A1489 抽奖 【数学期望】
乔明达太神,其实已经题解非常清楚了,我再推一遍吧。
题目意思相当于有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.
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define drep(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define mp make_pair
#define pb push_back
#define clr(x) memset(x, 0, sizeof(x))
#define xx first
#define yy second
using namespace std;
typedef long long i64;
typedef pair<int, int> pii;
const int inf = ~0U >> ;
const i64 INF = ~0ULL >> ;
//*******************************
const int maxn = ;
int c[maxn];
double Pow(double base, int num) {
double ret = ;
while (num) {
if (num & ) ret *= base;
base *= base;
num >>= ;
}
return ret;
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
i64 sum();
rep(i, , n) scanf("%d", &c[i]), sum += c[i];
double ans1();
static double p[maxn];
rep(i, , n) p[i] = 1.0 * c[i] / sum;
rep(i, , n) ans1 += p[i] * p[i];
ans1 *= m;
ans1 *= m - ;
ans1 += m;
printf("%.2lf\n", ans1);
double ans2 = n;
rep(i, , n) ans2 -= Pow(1.0 - 1.0 * p[i], m);
printf("%.2lf\n", ans2);
return ;
}
Tsinsen-A1489 抽奖 【数学期望】的更多相关文章
- [BZOJ 3143][HNOI2013]游走(数学期望)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3143 分析: 易得如果知道了每条边经过的数学期望,那就可以贪心着按每条边的期望的大小赋 ...
- 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)的是 ...
- 数学期望和概率DP题目泛做(为了对应AD的课件)
题1: Uva 1636 Headshot 题目大意: 给出一个000111序列,注意实际上是环状的.问是0出现的概率大,还是当前是0,下一个还是0的概率大. 问题比较简单,注意比较大小: A/C & ...
- [2013山东ACM]省赛 The number of steps (可能DP,数学期望)
The number of steps nid=24#time" style="padding-bottom:0px; margin:0px; padding-left:0px; ...
- 【BZOJ2134】单位错选(数学期望,动态规划)
[BZOJ2134]单位错选(数学期望,动态规划) 题面 BZOJ 题解 单独考虑相邻的两道题目的概率就好了 没了呀.. #include<iostream> #include<cs ...
- 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)
[BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...
- 【Luogu1291】百事世界杯之旅(动态规划,数学期望)
[Luogu1291]百事世界杯之旅(动态规划,数学期望) 题面 洛谷 题解 设\(f[i]\)表示已经集齐了\(i\)个名字的期望 现在有两种方法: 先说我自己的: \[f[i]=f[i-1]+1+ ...
- 【BZOJ4872】分手是祝愿(动态规划,数学期望)
[BZOJ4872]分手是祝愿(动态规划,数学期望) 题面 BZOJ 题解 对于一个状态,如何求解当前的最短步数? 从大到小枚举,每次把最大的没有关掉的灯关掉 暴力枚举因数关就好 假设我们知道了当前至 ...
- 【BZOJ3143】游走(高斯消元,数学期望)
[BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...
- 【BZOJ1076】奖励关(动态规划,数学期望)
[BZOJ1076]奖励关(动态规划,数学期望) 题面 懒,粘地址 题解 我也是看了题解才会做 看着数据范围,很容易想到状压 然后,设\(f[i][j]\)表示当前第\(i\)轮,状态为\(j\)的期 ...
随机推荐
- C#,js数据排序及其操作
List<int> listint=new List<int>{2,1,7,3,8,5,4,6};listint.Sort((x, y) => x - y); var a ...
- java 数组流
Example10_10.java import java.io.*; public class Example10_10 { public static void main(String args[ ...
- 使用MyBatis的Generator自动创建实体类和dao的接口与xml
在实际的项目中其实建立数据库和设计数据库的时候特别重要,而等数据库设计完成之后,根据数据库创建实体类的工作就特别麻烦和繁琐了,不仅很麻烦,而且很浪费时间,不做又不行,这次就找到了一个简单的方法可以让m ...
- L7,too late
words: parcel,包裹 detective,侦探 expect,期待 airfield,飞机起落的场地 guard,警戒,守卫,n precious,adj,珍贵的 stone,石头 exp ...
- STL笔记之set
//---------------------------------------------------------// set综述//------------------------------- ...
- FAT32系统中长文件名的存储(转)
FAT32的一个重要的特点是完全支持长文件名.长文件名依然是记录在目录项中的. 为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文 ...
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
Hibernate API简介 其接口分为以下几类: l 提供访问数据库的操作的接口: l 用于配置Hibernate的接口: l 回调接口 l ...
- ural1855 Trade Guilds of Erathia
Trade Guilds of Erathia Time limit: 2.0 secondMemory limit: 64 MB The continent of Antagarich was co ...
- 环境:win7+ie8 IE8的F12不起作用,原因如下:
1.先按下F12 2.再按下CTL+P,此时调试框将出现在屏幕下方. 3.再次点击CTL+P 4.此时在任务栏上的到IE8的图标,将会看到调试框,右击最大化,此时调试框是最大化状态. 5.然后再慢慢的 ...
- jstring, String, char* 变换函数
#include <malloc.h> #include <string.h> #include <stdlib.h> #include <vcclr.h&g ...