zoukankan      html  css  js  c++  java
  • [洛谷P3802] 小魔女帕琪

    [洛谷P3802] 小魔女帕琪

    一.前言

    ​ 这个8元素魔法体系还让机房同学们讨论了一会是东西方修真、魔法体系的区别hhh,最后还丧心病狂地压了行?

    题目链接放这里

    二.思路

    ​ 首先数学期望都给你A到脸上来了,考点很明确。按照一般的思路,(E=sum p_i*a_i),以及递推的做法,我们不妨设(f[i]) 表示以 i 结尾产生七魔法的期望。

    ​ 那么很显然的,只有从 (f[7]) 开始才有值,这还是欧皇属性,那么可以轻松的算出 (f[7]) .首先来一个基本款(注意是+=,这里计算的是概率,出现次数 (a_i) 默认1不写,基本的乘法原理,并且有(n=sum a_i))。

    [f[7]+=frac{a_1}{n}*frac{a_2}{n-1}*frac{a_3}{n-2}*frac{a_4}{n-3}*frac{a_5}{n-4}*frac{a_6}{n-5}*frac{a_7}{n-6} ]

    那么很显然的,再举一个基本款

    [f[7]+=frac{a_2}{n}*frac{a_1}{n-1}*frac{a_3}{n-2}*frac{a_4}{n-3}*frac{a_5}{n-4}*frac{a_6}{n-5}*frac{a_7}{n-6} ]

    其实到这里很多人都看的出来了,对于(f[7]+=p_i)这样的式子,所有的 (p_i) 都是相同的,(毕竟分母分子乘积都不变),不妨令此时的 (p_i)(p) ,那么其实 p 就是在头七个扔出一个固定顺序的七魔法的概率,那么这样的固定顺序出现次数即为7的排列 7!,所以 (f[7]=7!*p).也可以理解为乘法分配率,将乘上的(a_i=1)累加为 7!

    ​ 其实上面说了那么多有点废话的感觉哈,接下来才是重头戏。

    ​ 我们试图将求出 (f[7]) 的做法推广到 (f[8]) ,那么很显然的,我们需要先保证 (2-8) 位置的七魔法生效,至于1号位上是什么魔法无所谓。由于先选后选对 (f[8]) 没有影响,所以先把 (2-8) 位置上的选了,再选 1 ,很显然的第一步(选 2-8)的期望=p,那么对于剩下的1号位考虑,则是在 7种魔法中选一种出来为 (f[8]+=p*dfrac{a_x-1}{n-7}),对于2-8的任意排列,1号位的选择都有7种,所以选出一个排列后,(f[8]+=p*sum dfrac{a_x-1}{n-7}),后面一项显然为1,即等价于没出现一个新的排列 (f[8]+=p) ,排列数有 7! 种,所以 (f[8]=7!*p=f[7])

    ​ 其实第二部分选择的可以不受魔法种类的约束,换而言之,对于 (f[i]) 来说,先选出 i-6~i 这七个魔法,然后第二步选出在剩下的n-7个魔法中选出 i-7 个魔法,即对于第一步的每个排列,有 (f[i]+=p*dfrac{n-7}{n-7}*dfrac{n-8}{n-8}*……),由于排列数有7! 个,所以 (f[i]=p*7!=f[7])

    ​ 所以

    [egin{align} ans&=sum_{i=7}^nf[i]=f[7]*(n-7+1)\&=7!*p*(n-6)\&=7!*frac{a_1}{n}*frac{a_2}{n-1}*frac{a_3}{n-2}*frac{a_4}{n-3}*frac{a_5}{n-4}*frac{a_6}{n-5}*frac{a_7}{n-6}*(n-6)\&=7!*frac{a_1}{n}*frac{a_2}{n-1}*frac{a_3}{n-2}*frac{a_4}{n-3}*frac{a_5}{n-4}*frac{a_6}{n-5}*a_7 end{align} ]

    求出ans就好了

    三.CODE

    #include<bits/stdc++.h>
    double a[10],ans=7.0*6*5*4*3*2*1,sum;
    int main(){
    	for(int i=1;i<=7;++i)std::cin>>a[i],sum+=a[i]*1.0;
    	for(int i=1;i<=7&&sum+1-i!=0;++i)ans*=1.0*a[i]/(sum+1-i);
    	printf("%.3lf",ans*(sum-6));
    	return 0;
    }
    
  • 相关阅读:
    Python:给你们安排一波VIP音乐,看我是如何不充会员也能下载的
    最详细Python打包exe教程,并修改图标,30秒搞定!
    Python:20行代码爬取高质量帅哥美女视频,让你一次看个够
    【Python爬虫】招聘网站实战合集第一弹:爬取前程无忧
    Python爬虫:爬点大家都喜欢的东西,比如美女!每天保持心情愉悦!
    Python吃喝玩乐:爬取全城按摩门店,看看有没有你想去的!
    明天就是1024了,Python前来报到!爬取全网M子图片!
    周末福利!用Python爬取美团美食信息,吃货们走起来!
    Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......
    简单实现一个流程图(箭头流程图)
  • 原文地址:https://www.cnblogs.com/clockwhite/p/13389295.html
Copyright © 2011-2022 走看看