【CF457D】Bingo!(数学 期望)
大意
给定\(N,M,K\),表示有一个\(N*N\)的空矩阵,\(M\)个不同的数。
随机地把\(M\)个数中的\(N^2\)个数丢进这个空矩阵中(\(M\ge N^2\))
再从\(M\)个数中随机选\(K\)个不同的数,在矩阵上将这\(K\)个数标记出来(如果有)。
设\(T\)的值为完全被标记的整行与整列个数。
求\(2^T\)的期望值与\(1e99\)的较小值。
思路
首先,对于\(2^T\)这种奇怪的东西,我们可以将其理解为该种情况的所有子集个数。
即有些情况可能会被多次计算也是合法的,所以不用容斥。
则答案就是所有的\(T\)值出现个数的期望值。
然后有一个比较显然的想法:不妨枚举一下\(R,C\),表示至少有\(R\)整行,\(C\)整列被标记完。
则此时有一个\(C(N,R)\times C(N,C)\)表示在该情况下的\(T\)值总个数。
而这种方案的出现概率\(P[R][C]\)的值就为出现该情况数除以总情况数。
我们不妨设\(Z=(R+C)\times N-R\times C\),即这\(Z\)个数都会在所选的\(K\)个数中。
则有:
\]
将该式子化简后得:
\]
即该情况对答案的贡献就为\(C(N,R)\times C(N,C)\times \frac{C(M-Z,K-Z)}{C(M,K)}\)
小注:
对于\(P[R][C]\)的理解:
- 对于第一个式子的理解:
分子:枚举了\(K\)的选择,\(Z\)的上色选择,剩下的\(N^2-Z\)的上色选择。
分母:考虑了每一种矩阵上色情况以及每一种\(K\)的选择的总方案数。 - 对于第二个式子的理解:发现预涂色对答案统计无影响
分子:\(Z\)个数的位置以及颜色已经固定,则这\(Z\)个数一定在\(K\)个数中,剩下的\(K-Z\)个乱选就行了。
分母:矩阵的颜色已经上好,则总方案数只有\(C(M,K)\)
对于答案的保存方式:
使用long double来存储一个数的log()值,
则乘法变加法,除法变减法,最后再统一出解。
代码
#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
#define LD long double
const int MAXN=100005;
int N,M,K;
LD f[MAXN],Ans;
LD C(int x,int y){
return f[x]-f[y]-f[x-y];
}
int main(){
scanf("%d%d%d",&N,&M,&K);
for(int i=1;i<=1e5;i++)
f[i]=f[i-1]+log(1.0*i);
for(int i=0;i<=N;i++)
for(int j=0;j<=N;j++){
int z=N*(i+j)-i*j;
if(z>K)continue;
LD tmp=C(N,i)+C(N,j)+C(M-z,K-z)-C(M,K);
Ans=min((LD)(1e99),Ans+exp(tmp));
}
printf("%.10f\n",(double)Ans);
}
【CF457D】Bingo!(数学 期望)的更多相关文章
- [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 ...
随机推荐
- Swoole 协程的并发调用及使用示例
示例一: 利用通道pop会自动挂起当前协程,等待生产者推送数据的特性,实现并发调用,并在协程完成后组合结果集. $serv = new Swoole\Http\Server("127.0.0 ...
- Python3.7 发送邮件 报‘[WinError 10061] 由于目标计算机积极拒绝,无法连接’错误的解决方法
背景: 最近在练习Python 的邮件发送功能 照着教程写了一个简单的demo 结果运行时报如下错误:[WinError 10061] 由于目标计算机积极拒绝,无法连接. 如图: 解决路径如下: St ...
- ShardingJDBC
ShardingJDBC的核心流程主要分成六个步骤,分别是:SQL解析->SQL优化->SQL路由->SQL改写->SQL执行->结果归并,流程图如下: sharding ...
- Docker 容器化的 SonarQube 服务在不同主机之间的迁移
安装 docker-ce // https://docs.docker.com/install/linux/docker-ce/centos/ $ sudo yum remove docker \ d ...
- Go语言系列之函数
函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民". 函数 ...
- Discuz!X ≤3.4 任意文件删除漏洞
Discuz!X ≤3.4 任意文件删除漏洞 简述 漏洞原因:之前存在的任意文件删除漏洞修复不完全导致可以绕过. 漏洞修复时间:2017年9月29日官方对gitee上的代码进行了修复 漏洞原理分析 在 ...
- 【刷题-LeetCode】230. Kth Smallest Element in a BST
Kth Smallest Element in a BST Given a binary search tree, write a function kthSmallest to find the k ...
- golang反射reflect机制用法
package main import ( "fmt" "reflect" ) type User struct { Id int Name string Ag ...
- 使用AJAX请求调用出现HTTPS协议错误问题
前言: 这又是一个可能是半路就卡机的项目,在调用ajax的时候遇到了下面的这个错. js中有个ajax请求http,url是:http//:.js就提示请求了一个不安全的脚本,在发送ajax请求时,就 ...
- 安装python3.6,设为默认,yum不能用
安装python3.6 1.安装依赖包 yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-r ...