zoukankan      html  css  js  c++  java
  • 【UOJ#514】通用测评号

    题目

    直接算是非常困难的,因为每填满一个仓库之后分母就变了。

    但是不难发现"等概率随机选一个没有满的燃料舱"其实是没什么用的,直接转化为等概率选取一个位置(+1),求(geq a)位置个数的期望。这样的话概率就一直是(frac{1}{n})

    考虑对于(1)号位置计算在全部位置(geq b)之前(1)号位置(geq a)的概率是多少,由于每个位置是等价的,所以乘(n)就是答案了。

    将每次填的位置拿出来形成一个序列,考虑在这个序列有(a)(1)的时候就停下来。这样概率就和序列长度相关了。同时我们还需要保证至少有一个位置在序列的出现次数少于(b)次,否则在出现(a)(1)之前就停下来了。

    (F(x)=sum_{i=0}^{b-1}frac{x^i}{i!}),可以用生成函数将序列写成如下形式:

    [frac{x^{a-1}}{(a-1)!}sum_{i=1}^ninom{n-1}{i}F^i(x)(e^x-F(x))^{n-1-i} ]

    即选出(i)个位置来出现次数少于(b),剩下的(n-1-i)个位置出现次数大于等于(b)(1)出现了(a)次且必定出现在最后,于是只剩下(a-1)个位置可以随便排列。

    后面用一下二项式定理,就能得到:

    [frac{x^{a-1}}{(a-1)!}[e^{(n-1)x}-(e^x-F(x))^{n-1}] ]

    再用一下二项式定理将((e^x-F(x))^{n-1})展开得:

    [frac{x^{a-1}}{(a-1)!}[e^{(n-1)x}-sum_{i=0}^{n-1}inom{n-1}{i}(-F(x))^ie^{(n-1-i)x}] ]

    之后我们会得到一些形如(c imes x_i imes e^{jx})的东西,直接展开得(csum_{k=0}^{infty}frac{j^k(k+i)!}{k!n^{k+i+1}}=frac{c}{n^{i+1}}sum_{k=0}^{infty}(frac{j}{n})^k(k+i)^{underline i})。这里的(frac{1}{n^{i+k+1}})是这个长度为(i+k+1)的序列出现的概率,(+1)是因为还有被钦定在最后一个位置的(1)

    之后推一波式子:

    [egin{aligned} &sum_{k=0}^{infty}(frac{j}{n})^k(k+i)^{underline i}\ =&i!sum_{k=0}^{infty}(frac{j}{n})^kinom{k+i}{i}\ =&i!sum_{k=0}^{infty}(frac{j}{n})^kinom{k+(i+1)-1}{(i+1)-1} end{aligned} ]

    生成函数中有一个经典结论,(sum_{k=0}^{infty}x^kinom{k+i-1}{i-1}=frac{1}{(1-x)^{i}}),于是我们可以将(frac{j}{n})看成(x),就能得到

    [i!sum_{k=0}^{infty}(frac{j}{n})^kinom{k+i}{i}=frac{1}{(1-frac{j}{n})^{i+1}} ]

    于是(c imes x_i imes e^{jx}=frac{i!c}{n^{i+1}(1-frac{j}{n})^{i+1}}=frac{i!c}{(n-j)^{i+1}})((-F(x)))的各次幂可以直接暴力NTT来算,于是复杂度为(O(n^3log n))

    代码

  • 相关阅读:
    C# 下 WebService 初探: 构建Web Service 服务及 WinForm和浏览器 httpget调用
    Action<T> 泛型委托 在跨线程访问控件委托中的应用
    C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)
    DOS下的批处理文件(老东西了)
    typedef struct和struct定义结构体的区别
    多线程idhttp下载文件源代码
    JQUERY获取DOM对象
    学习笔记:delphi实现网络通信之select模型
    学习笔记之WSAAsyncSelect模式
    delphi 函数指针 方法指针
  • 原文地址:https://www.cnblogs.com/asuldb/p/12972359.html
Copyright © 2011-2022 走看看