TsinsenA1489 抽奖 【期望】
题目分析:
问题可以转化成将m个球放进n个盒子里,每个盒子的贡献为盒子中球数的平方。
第一问考虑增量。
对于一个原本有$x$个球的盒子,新加一个球的贡献是$2x+1$。期望条件下仍然满足。
第$i$个球加进第$j$个盒子的概率是$\frac{a[j]}{tot}$,而第$j$个盒子球数的期望是$\frac{a[j]*(i-1)}{tot}$。
所以答案就是
$$\sum_{i=0}^{n}(1+2*i*\sum_{j=1}^{m}\frac{a[j]^2}{tot^2})$$
后面的$\sum$预处理出来。
第二问考虑每个盒子没有任何一个球,那么把球放到其它盒子里,求出概率拿1减,然后加起来。
代码:
#include<bits/stdc++.h>
using namespace std; const int maxn = ; int n,m;
int a[maxn],tot; double fast_pow(double now,int pw){
double ans = ,dt = now;int bit = ;
while(bit <= pw){
if(bit & pw){ans = ans*dt;}
dt = dt*dt; bit<<=;
}
return ans;
} void solve1(){
double um = ;
for(int i=;i<=n;i++){
double now = (double)a[i]/(double)tot;
um += now*now;
}
double ans = ;
for(int i=;i<m;i++){ans += (+*i*um);}
printf("%.2lf\n",ans);
} void solve2(){
double ans = ;
for(int i=;i<=n;i++){
double p = (double)(tot-a[i])/(double)tot;
p = fast_pow(p,m);
p = -p;
ans += p;
}
printf("%.2lf\n",ans);
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) tot += a[i];
solve1();
solve2();
return ;
}
TsinsenA1489 抽奖 【期望】的更多相关文章
- Tsinsen-A1489 抽奖 【数学期望】
乔明达太神,其实已经题解非常清楚了,我再推一遍吧. 题目意思相当于有n个盒子,无差别投m次球,每个盒子的得分为每个盒子里的球的个数. 第一问: 假设这个球放在了第i个盒子里,那么 ∆ans = (mi ...
- YYS FZU - 2278 (期望)JAVA
题目链接: G - YYS FZU - 2278 题目大意: 我们现在想要收集到n个卡片,现在已知抽到每种卡片的概率为1/n,现在每隔(n-1)!天就可以进行一次抽奖,问收集齐所有卡片的期望天数. 具 ...
- 基于Map的用户注册、登录、抽奖系统
期望功能 方法设计 1.类的设计: 定义两个参与者的属性: private String username; private String userpassword; 2.注册方法: public v ...
- canvas转盘抽奖的实现(一)
网络上已经有了很多转盘抽奖的代码,但大多是用jQuery插件实现的,其中的原理比较难弄明白,于是自己摸索了一个.最终效果如下: // = totalTime) { stopRotation() ...
- 卡片抽奖插件 CardShow
这个小项目(卡片秀)是一个卡片抽奖特效插件,用开源项目这样的词语让我多少有些羞愧,毕竟作为一个涉世未深的小伙子,用项目的标准衡量还有很大差距.不过该案例采用 jQuery 插件方式编写,提供配置参数并 ...
- DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码
前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...
- 简单的转盘抽奖——CSS动画优化
前言 前两天去一家公司面试,被问到一些小游戏的东西.面试官提到了刷红包还有抽奖这些怎么实现,当时简单说了下思路,回来之后想想还是说的太轻描淡写了,干说不做就是耍流氓,所以就做了一个(Demo & ...
- HTML5 Canvas绘制转盘抽奖
新项目:完整的Canvas转盘抽奖代码 https://github.com/givebest/GB-canvas-turntable 演示 http://blog.givebest.cn/GB-ca ...
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
随机推荐
- Java使用Aspose组件进行多文档间的转换操作
首先,祝大家新年快乐,2019诸事顺利,很久没有更新博客,今天要给大家说的是 ”Aspose“ 组件,作为2019年第一篇博客,希望大家能够多多支持,2019年要继续加油. 什么是Aspose? As ...
- python 题库1
1. 生成一个1到50的大字符串,每个数字之间有个空格,例如1 2 3 4 ……50 解题思路: (1)声明一个空字符串变量用于保存生成的字符串 (2)使用for循环+range()函数生成一个1到5 ...
- 原生js轮盘抽奖实例分析(幸运大转盘抽奖)
效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现 ...
- C#之使类型参数--泛型
1.泛型是什么 泛型的就是“通用类型”,它可以代替任何的数据类型,使类型参数化,从而达到只实现一个方法就可以操作多种数据类型的目的. 2.为什么使用泛型 举一个比较两个数大小的例子: 以上例子实现in ...
- Spring中关于AOP的实践之AspectJ方式实现通知
(本文中如有不当之处,恳请批评指正) AspectJ方式的简化了通知的出现复杂度.但是对配置文件的操作复杂度有了一定的提升 一. 配置通知 package com.xkx.adviceDemo; im ...
- vue element-ui 文件上传
<el-upload class="upload-demo" action="" :before-remove="beforeRemove&qu ...
- 我的世界 ParaCraft 结合开源地图 OpenStreetMap 生成3D校园的方法简介
我的世界ParaCraft结合开源地图OpenStreetMap生成3D校园的方法简介 版本1.0 日期2019.2.3 作者Ray (82735589@qq.com) www.TimeGIS.com ...
- arcgis api 3.x for js 入门开发系列十五台风轨迹
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- 在chrome 怎么通过ajax请求加载本地文件
在chrome下面用Jquery 的load方法加载本地的html文件时会报错 我百度了一下是因为 谷歌浏览器内核为了安全机制,不允许这样方式访问其他页面,但是可以通过加 --enable-file- ...
- Python 小试牛刀,Django详细解读,让你更快的掌握它!!!
一.MVC和MTV模式 MVC:将web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM),视图负责与用户的交 ...