zoukankan      html  css  js  c++  java
  • D:苏卿念发红包

    首先,题目中已经说得很明确了(按照常理也是)。
    当有mm个包,你第kk个抢。k>mk>m的话。显然,平时会显示:来晚了一步,红包已经被领完了 ext{来晚了一步,红包已经被领完了}
    就是,已经被第mm个及之前的人领完了。所以说,期望是00

    然后,看k<=mk<=m的时候。

    我们构造一个函数f(a,b,c)表示剩余a元,还有b个包,你在第c个抢得到的期望f(a,b,c) ext{表示剩余a元,还有b个包,你在第c个抢得到的期望}

    于是,我们就有一个期望的转移:

    f(n,m,k)=m2n02nmf(nx,m1,k1)  dxf(n,m,k)=frac{m}{2n}*int_{0}^{frac{2n}{m}}f(n-x,m-1,k-1) dx

    特别的,当k=1k=1

    f(a,b,1)=b2a02abx dxf(a,b,1)=frac{b}{2a}*int_{0}^{frac{2a}{b}}x dx

    m=1m=1时,我们这一类里,只有m=k=1m=k=1f(a,1,1)=af(a,1,1)=a


    然后我们展开来看:

    k!=mk!=m::

    f(n,m,k)=m2n02nmm12(nx1)02(nx1)m1m22(nx1x2)  mk+22(nx1...xk2)02(nx1...xk2)mk+2mk+12(nx1...xk1)02(nx1...xk1)mk+1xk dxk dxk1... dx1f(n,m,k)=frac{m}{2n}*int_{0}^{frac{2n}{m}}frac{m-1}{2(n-x_{1})}int_{0}^{frac{2(n-x_{1})}{m-1}}frac{m-2}{2(n-x_{1}-x_{2})} …… frac{m-k+2}{2(n-x_{1}...-x_{k-2})}int_{0}^{frac{2(n-x_{1}...-x_{k-2})}{m-k+2}}frac{m-k+1}{2(n-x_{1}...-x_{k-1})}int_{0}^{frac{2(n-x_{1}...-x_{k-1})}{m-k+1}}x_{k} d_{x_{k}} d_{x_{k-1}} ... d_{x_{1}}

    k=mk=m时,积分到:

    22(nx1...xm2)02(nx1...xm2)2xm1 dxm1 dxm2... dx1frac{2}{2(n-x_{1}...-x_{m-2})}int_{0}^{frac{2(n-x_{1}...-x_{m-2})}{2}} x_{m-1} d_{x_{m-1}} d_{x_{m-2}} ... d_{x_{1}}

    就可以了。


    然后……

    这怎么做?!!!kk重积分啊,套自适应性辛普森积分?

    数据范围一看,TT了啊。

    好吧好吧,我们化简一下看看。


    先只看后两项:

    $frac{m-k+2}{2(n-x_{1}…-x_{k-2})}int_{0}{frac{2(n-x_{1}…-x_{k-2})}{m-k+2}}frac{m-k+1}{2(n-x_{1}…-x_{k-1})}int_{0}{frac{2(n-x_{1}…-x_{k-1})}{m-k+1}}x_{k} d_{x_{k}} d_{x_{k-1}} $

    我们开始化简:

    mk+22(nx1...xk2)02(nx1...xk2)mk+2mk+12(nx1...xk1)12[2(nx1...xk1)mk+1]2xk dxk dxk1frac{m-k+2}{2(n-x_{1}...-x_{k-2})}int_{0}^{frac{2(n-x_{1}...-x_{k-2})}{m-k+2}}frac{m-k+1}{2(n-x_{1}...-x_{k-1})} *frac{1}{2}*[ frac{2(n-x_{1}...-x_{k-1})}{m-k+1} ]^{2} x_{k} d_{x_{k}} d_{x_{k-1}}

    mk+22(nx1...xk2)02(nx1...xk2)mk+2(nx1...xk1)mk+1frac{m-k+2}{2(n-x_{1}...-x_{k-2})}int_{0}^{frac{2(n-x_{1}...-x_{k-2})}{m-k+2}} frac{(n-x_{1}...-x_{k-1})}{m-k+1}

    然后,把常数1mk+1frac{1}{m-k+1}提出来,继续拆一个积分号,这里就不写了。

    希望自己找一张草稿纸写一下。

    神奇的发现。

    竟然是那么的相似。

    我们很显然的利用数学归纳法。

    直接按照相似的公式积第一项,把常数也按照规律写下来。

    积分之后,把所有常数消去。

    神奇的发现:

    f(n,m,k)=nmf(n,m,k)=frac{n}{m}

    mmp!!!mmp!!!

    (感受到了世界的深深的恶意)

    是不是我们算错了?


    好,现在请拿起身边的卡西欧计算器。

    我们试试样例一:

    n=100,m=10,k=3n=100,m=10,k=3

    我们把k=1,2,3k=1,2,3都试一下。

     nm=10 frac{n}{m}=10


    k=1 :k=1 :

    f(100,10,1)=120 020x dx=10f(100,10,1)=frac{1}{20} int_{0}^{20} x d_{x} =10


    k=2 :k=2 :

    f(100,10,2)=12002092(100x1)02(100x1)9x2  dx2 dx1f(100,10,2)=frac{1}{20}int_{0}^{20} frac{9}{2(100-x_{1})}int_{0}^{frac{2(100-x_{1})}{9}} x_{2} dx_{2} dx_{1}

    =120020(100x1)9 dx1 =1180020(100x1)  dx1=10=frac{1}{20}int_{0}^{20} frac{(100-x_{1})}{9} dx_{1} =frac{1}{180}int_{0}^{20}(100-x_{1}) dx_{1}=10


    k=3 :k=3 : 算出来也是1010


    ……

    好吧,这道题就是nmfrac{n}{m}了,O1O_{1}搞出来了。

    ENDEND

  • 相关阅读:
    【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
    @MapperScan注解
    mongoRepository mongoTemplate
    Spring注解中@component
    正则表达式
    832. Flipping an Image
    Java---静态代码块、构造代码块、构造函数以及Java类初始化顺序[未完成]
    轻松学习正则表达式「转」
    771. Jewels and Stones
    java中的栈、堆、常量池和关于String类的理解
  • 原文地址:https://www.cnblogs.com/ShineEternal/p/10834339.html
Copyright © 2011-2022 走看看