• Luogu P3802 小魔女帕琪(期望)


    P3802 小魔女帕琪

    题意

    题目背景

    从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼。

    帕琪能熟练使用七种属性(金、木、水、火、土、日、月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从而唱出强力的魔法。比如说为了加强攻击力而将火和木组合,为了掩盖弱点而将火和土组合等等,变化非常丰富。

    题目描述

    现在帕琪与强大的夜之女王,吸血鬼蕾咪相遇了,夜之女王蕾咪具有非常强大的生命力,普通的魔法难以造成效果,只有终极魔法:帕琪七重奏才能对蕾咪造成伤害。帕琪七重奏的触发条件是:连续释放的(7)个魔法中,如果魔法的属性各不相同,就能触发一次帕琪七重奏。

    现在帕琪有(7)种属性的能量晶体,分别为(a1,a2,a3,a4,a5,a6,a7)(均为自然数),每次释放魔法时,会随机消耗一个现有的能量晶体,然后释放一个对应属性的魔法。

    现在帕琪想知道,她释放出帕琪七重奏的期望次数是多少,可是她并不会算,于是找到了学(OI)的你。

    输入输出格式

    输入格式:

    一行(7)个数字,(a1,a2,a3,a4,a5,a6,a7)

    输出格式:

    一个四舍五入保留(3)位的浮点数

    输入输出样例

    输入样例#1:

    1 1 1 1 1 1 1
    

    输出样例#1:

    1.000
    

    说明

    样例说明:

    显然一定会触发一次帕琪七重奏。

    数据范围:

    对于(30\%)的测试点,(a1+a2+a3+a4+a5+a6+a7<=10)

    对于(100\%)的测试点,(a1+a2+a3+a4+a5+a6+a7<=10^9)

    思路

    翻译一下这个(fancy)的题面:

    求在一个由(a1)(1)(a2)(2)(a3)(3)(a4)(4)(a5)(5)(a6)(6)(a7)(7)组成的一个数列中,出现(1sim 7)的全排列的次数期望。

    首先设(sum=Sigma^7_{i-1}a_i)。数列的第一个数为(1)的概率为(frac{a_1}{sum}),第二位数为(2)的概率为(frac{a_2}{sum})...那么前七个数为(1,2,3,4,5,6,7)的概率就是:

    [frac{Pi_{i=1}^{7}a_i}{Pi_{j=0}^6(sum-j)} ]

    (1sim 7)的全排列一共有(7!)种,所以前七个数为(1sim 7)的全排列的概率就是:

    [frac{7! imes Pi_{i=1}^{7}a_i}{Pi_{j=0}^6(sum-j)} ]

    不从第一位开始,其实从第(i)位开始的七个数为(1sim 7)的全排列的概率都是上面那个式子。所以最后的总期望就是:

    [frac{7! imes Pi_{i=1}^{7}a_i}{Pi_{j=0}^6(sum-j)} imes (sum-6) ]

    约分一下:

    [frac{7! imes Pi_{i=1}^{7}a_i}{Pi_{j=0}^5(sum-j)} ]

    这就是答案。

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    typedef long double LD;
    LD a1,a2,a3,a4,a5,a6,a7,sum,ans;
    int main()
    {
        cin>>a1>>a2>>a3>>a4>>a5>>a6>>a7;
        if(!a1||!a2||!a3||!a4||!a5||!a6||!a7) goto flag;
        sum=a1+a2+a3+a4+a5+a6+a7;
        ans=LD(5040)/sum*a1/(sum-LD(1))*a2/(sum-LD(2))*a3/(sum-LD(3))*a4/(sum-LD(4))*a5/(sum-LD(5))*a6/(sum-LD(6))*a7*(sum-6);
        flag:
        cout<<fixed<<setprecision(3)<<ans;
        return 0;
    }
    
  • 相关阅读:
    伪类与伪元素的区别
    display:-webkit-box,display:flex 伸缩盒模型
    猴子分桃-sdut
    简单枚举类型——植物与颜色-sdut
    数据结构实验之链表七:单链表中重复元素的删除-sdut
    约瑟夫问题-sdut
    数据结构实验之链表四:有序链表的归并-sdut
    数据结构实验之链表五:单链表的拆分-sdut
    Spring的定时任务
    HTTP状态码
  • 原文地址:https://www.cnblogs.com/coder-Uranus/p/9904623.html
Copyright © 2020-2023  润新知