题目链接

大意

给定\(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\)个数中。

则有:

\[P[R][C]=\frac{C(M,K)\cdot A(K,Z)\cdot A(M-Z,N^2-Z)}{C(M,K)\cdot A(M,N^2)}
\]

将该式子化简后得:

\[P[R][C]=\frac{C(M-Z,K-Z)}{C(M,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!(数学 期望)的更多相关文章

  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 ...

随机推荐

  1. CentOS7 常用命令汇总

    原文链接:https://blog.csdn.net/weixin_42208959/article/details/107970958 目录常用命令1.进程相关命令1.1 查询进程和结束进程1.2 ...

  2. 面试题68 - II. 二叉树的最近公共祖先

    <搜索树结点> <获取路径> 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q ...

  3. 《剑指offer》面试题10- I. 斐波那契数列

    问题描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0,   F(1) = 1 F(N) = F(N - 1) + F(N - ...

  4. 我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式

    摘要:工厂模式是将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦.从而提高项目的扩展和维护性. 本文分享自华为云社区<[Java设计模式]用 披萨订购案例 详 ...

  5. Sentry 开发者贡献指南 - 测试技巧

    作为 CI 流程的一部分,我们在 Sentry 运行了多种测试. 本节旨在记录一些 sentry 特定的帮助程序, 并提供有关在构建新功能时应考虑包括哪些类型的测试的指南. 获取设置 验收和 pyth ...

  6. C# 基本控件使用练习

    自己设计并编写一个 Windows 应用程序,要求用到 TextBox.GroupBox.RadioButton.CheckBox.ComboBox.ListBox 控件. 代码如下: 页面1: us ...

  7. 【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败

    发现在如下代码中存储kafka生产者初始化失败: config.Version = sarama.V0_10_2_1 //V2_2_0_0 producer, err := sarama.NewSyn ...

  8. tarjan全家桶

    tarjan 全家桶 关于tarjan 它太强了 CCCOrz dfs树&low dfs树:在图上做不重复经过同一点的dfs,经过的边与点形成一棵树.于是图上所有点都被这棵树包含,一部分边被包 ...

  9. Django 优化杂谈

    Django 优化杂谈 Apr 21 2017 总结下最近看过的一些文章,然后想到的一些优化点,整理一下. 数据库连接池 http://mt.dbanotes.net/arch/instagram.h ...

  10. 科技爱好者周刊(第 175 期):知识广度 vs 知识深度

    这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...