• BZOJ.2134.[国家集训队]单选错位(概率 递推)


    题目链接

    如题目中的公式,我们只要把做对每个题的概率加起来就可以了(乘个1就是期望)。
    做对第i道题的概率 $$P_i=frac{1}{max(a_{i-1},a_i)}$$
    原式是 (P_i=frac{min(a_{i-1},a_i)}{a_{i-1} imes a_i}),化简后得到上式。
    例:假设第i-1道有3个选项,第i道有5个选项,暴力一点,那么做对就是从3个中选1个和从5个中选1个相同的概率,
    概率为 (frac{1}{3} imesfrac{1}{5}+frac{1}{3} imesfrac{1}{5}+frac{1}{3} imesfrac{1}{5}=frac{min(3,5)}{3 imes 5})

    //820kb	836ms
    #include <cstdio>
    #include <algorithm>
    #define mod (100000001)
    
    int n,A,B,C,a_1;
    
    int main()
    {
    	scanf("%d%d%d%d%d",&n,&A,&B,&C,&a_1);
    	double res=0;
    	int pre=a_1, a_pre=a_1%C+1, now, a_now;
    	for(int i=2; i<=n; ++i)
    	{
    		now=(1ll*pre*A+B)%mod, a_now=now%C+1;//直接longlong略慢 
    		res+=1.0/std::max(a_pre,a_now);
    		pre=now, a_pre=a_now;
    	}
    	res+=1.0/std::max(a_1%C+1,a_now);
    	printf("%.3lf",res);
    
    	return 0;
    }
    
  • 相关阅读:
    架构师技能图谱 V1.2
    CTO 技能图谱
    物联网的技术构架
    东进交换机
    Ipad2
    ipad2 恢复
    论文建议
    SQL归档
    SQL 会议消费记录统计
    javascript中的方法:类方法(静态方法)对象方法 原型方法
  • 原文地址:https://www.cnblogs.com/SovietPower/p/8680962.html
Copyright © 2020-2023  润新知