zoukankan      html  css  js  c++  java
  • 洛谷 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

    by-szc

    好题

    首先,对于这种没有给出权值或者权值为1的题求期望,根据期望的定义式:期望=$sum pi*xi$

    这样的题没有实际上就是求概率

    定义:$tot=sum_{i=1}^7 ai$

    对于每一个元素,它可以被作为释放元素的概率为$(a1/tot)*(a2/(tot-1))*(a3/(tot-2))*...*(a7/(tot-6))$=$a[i]/(tot-i+1)$

    这道题目与释放的顺序无关,所以还需要乘上7的阶乘,也就是5040

    此时,我们还遗漏了一个条件:所有的元素都必须用上,

    根据排列的性质,每一个元素都可以作为首项元素,只要元素的个数不满7

    所以我们需要在结尾乘$(tot-6)$

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<algorithm>
     5 using namespace std;
     6 inline int read()
     7 {
     8     char c=getchar();    int flag=1,x=0;
     9     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
    10     while(c>='0'&&c<='9')x=x*10+c-48,c=getchar();return x*flag;
    11 }
    12 double a[15],tot=0;
    13 int main()
    14 {
    15     for(int i=1;i<=7;i++)    
    16         a[i]=read(),tot+=a[i];
    17     if(tot<=6)
    18     {
    19         printf("0.000");
    20         return 0;
    21     }
    22     double ans=5040.0;
    23     for(int i=1;i<=7;i++)    
    24         ans=ans*(a[i]/(tot-i+1));
    25     ans=ans*(tot-6);
    26     printf("%.3lf",ans);
    27     return 0;
    28 }
  • 相关阅读:
    pair和map
    lower_bound( )和upper_bound( )
    P1886 滑动窗口 /【模板】单调队列
    数的度(数位dp)
    最小生成树
    刷题-力扣-1052. 爱生气的书店老板
    刷题-力扣-766. 托普利茨矩阵
    刷题-力扣-28. 实现 strStr()
    刷题-力扣-697. 数组的度
    刷题-力扣-1004. 最大连续1的个数 III
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/7787291.html
Copyright © 2011-2022 走看看