• CF1278F Cards


    题目传送门

    分析:
    太!棒!了!学!到!虚!脱!

    这里给出(O(K^2),O(KlogK),O(K))三种解法

    (O(K^2))解法
    考虑(K)的意义
    相当于有一个长度为K的序列,每一个位置是一个独立的游戏,我们假设有(c)次游戏抽出了Joker
    抽出Joker的轮次序列为({C_1,C_2...C_c})
    序列每一位选择一个轮次,于是便会出现(c^K)个序列
    对于一个序列出现的轮次,我们要钦定这几轮一定抽出Joker,对于其他没有进入序列的轮次,我们并不关心
    于是一个长度为(K),其中出现了(p)种轮次,那么这个序列出现的概率便是(frac{1}{m^p})
    我们设(f[K][p])表示长度为(K),其中出现了(p)种轮次的序列总数
    进行(dp)

    [dp[i][j]=dp[i−1][j]∗j+dp[i−1][j−1]∗(n−j+1) ]

    最后期望=概率*方案
    代码很短

    后面两个解法先放上这个博客
    清晰美妙的式子推导,OrzOrzOrz

    主要使用这两个推导公式:

    [n^m=sum_{k=0}^{m}egin{Bmatrix}m\kend{Bmatrix}inom{n}{k}k!=sum_{k=0}^{m}egin{Bmatrix}m\kend{Bmatrix}n^{underline k} ]

    [m^{underline k}=egin{Bmatrix}m\kend{Bmatrix}k!=sum_{i=0}^{k}(-1)^{k-i}inom{k}{i}i^m ]

    (O(KlogK))的解法,按照博客推到这个式子

    [sum_{i=0}^{k}egin{Bmatrix}k\iend{Bmatrix}n^{underline i}p^{i} ]

    这里按照上面第二个式子反演,使用NTT即可(O(KlogK))解决

    (O(k))解法,将反演式子暴力带入答案式子

    [sum_{i=0}^{k}i^kinom{n}{i}p^isum_{j=0}^{k-i}(-1)^jinom{n-i}{j}p^j ]

    我们令(f(i)=sum_{j=0}^{k-i}(-1)^jinom{n-i}{j}p^j)
    这里可以进行差分,暴力做减法合并和式就可以,可以得出递推式

    [f(i)=(-p)^{k-i}inom{n-i-1}{k-i}+(1-p)f(i+1) ]

    这个(O(k))递推,然后(O(k))求答案

    留下了没有数理基础的泪水。。。

  • 相关阅读:
    Linux
    Monkey命令
    ADB命令
    DOS命令
    列表
    函数
    文件读写及实操项目
    Selenium2自动化——初体验
    新开淘宝店怎么提升信誉,是不是真的要刷钻?
    JSFL:导入根文件夹将所有图片添加库链接导出swf
  • 原文地址:https://www.cnblogs.com/Darknesses/p/13018917.html
Copyright © 2020-2023  润新知