• CF457D Bingo! 概率,期望复习


    好久没做概率题了

    基本上自己想不出来每次都得看题解学

    这道题基本上没人写 题解 ,我来占个沙发

    (Firstly),思路

    (2019.10.26)

    补充 :

    你的最终得分为(2^t) 求得分的期望

    对于(2^t) 我们可以理解为有一个集合(A ,S.T.|A|=t Rightarrow) (A)(2^t)个子集

    期望

    [ans=displaystylesum^{n}_{r=0}sum^{n}_{c=0}C_{n}^{r}*C_{n}^{c}*p_{r,c} ]

    重点算(p_{r,c})

    (m)中选出(k)个数分布在选中的(r)(c)

    (r)(c)列 共有 (num=(r+c)*n-r*c)

    (num)个数已经选出来且分布在选中的(r)(c)

    剩下(C_{m-num}^{k-num})选数方式

    [p_{r,c}=frac{C_{m-num}^{k-num}}{C_{m}^{k}} ]

    (2019.10.26)

    补充:这里会与(P_{R,C}(R>=r,C>=c))算重 但这样反而是正确的

    针对每一个(t) 我们都算了她的子集 所以 是(2^t)

    这句话感性理解下就好我也不是很懂 欢迎懂的人跟我讲

    关键是此题数据很大 又没有说取模

    那么可以想到用指数进行运算

    应该知道

    [log(n)=log_{e}n ]

    [exp(x)=e^x ]

    (Attention)

    (long double)

    输出 转成(double) 再用(lf) 输出

    (Lf)输出(long double)本地可过 (CF)上会错 (雾)

    (vjudge) 上语言选 GNU (G++11 5.1.0)

    (Code)

    #include <cmath>
    #include <cstdio>
    #include <iostream>
    using namespace std;
    #define reg register int
    #define isdigit(x) ('0' <= (x)&&(x) <= '9')
    template<typename T>
    inline T Read(T Type)
    {
    	T x = 0,f = 1;
    	char a = getchar();
    	while(!isdigit(a)) {if(a == '-') f = -1;a = getchar();}
    	while(isdigit(a)) {x = (x << 1) + (x << 3) + (a ^ '0');a = getchar();}
    	return x * f;
    }
    typedef long double lb;
    const int MAXN = 100010;
    lb f[MAXN],ans;
    inline lb C(int n,int m)
    {
    	return f[n] - f[m] - f[n - m];
    }
    int main()
    {
    	int n = Read(1),m = Read(1),k = Read(1);
    	for(reg i = 1;i <= 1e5;i++) f[i] = f[i - 1] + log(1.0 * i);
    	for(reg i = 0;i <= n;i++)
    	{
    		for(reg j = 0;j <= n;j++)
    		{
    			int num = (i + j) * n - i * j;
    			if(num <= k)
    			{
    				lb p = C(n,i) + C(n,j) + C(m - num,k - num) - C(m,k);
    				ans = min(ans + exp(p),(lb)1e99);
    			}
    		}
    	}
    	printf("%.10lf",(double)ans);
        return 0;
    }
    
  • 相关阅读:
    Netty源码解析与实战
    什么是序列化id?
    关于idea下tomcat输出日志的问题
    利用jstack 找到异常代码
    mysql 异常 Lock wait timeout exceeded; try restarting transaction;expc=java.sql.SQLExcept
    Spark-Hadoop、Hive、Spark 之间是什么关系?(转)
    转(数据分析的意义)
    按位取反~100=-101
    知识总汇
    前端(以Vue为例)webpack打包后dist文件包如何部署到django后台中
  • 原文地址:https://www.cnblogs.com/resftlmuttmotw/p/11725936.html
Copyright © 2020-2023  润新知