• [gym102978C] Count Min Ratio


    [gym102978C] Count Min Ratio

    给定 (B) 个蓝色的球、 (R) 个红色的球以及一个绿色的球,同颜色的球不可区分。对于一种球的排列方式,记 (l_B,r_B,l_R,r_R) 表示球左/右变的蓝/红色球个数,则该排列的权值为 (max {x | l_B imes xle l_R,r_B imes xle r_R}) 。求所有排列的权值和。

    (1le Ble 10^6,1le Rle 10^{18})

    Solution

    枚举绿球左边的红蓝球个数:

    [egin{aligned}&sum_{b=0}^{B}sum_{r=0}^{R}inom{b+r}{b}inom{(B-b)+(R-r)}{B-b}min (frac{r}{b},frac{R-r}{B-b})\&=sum_{A=1}^{R/B}sum_{b=0}^{B}sum_{r=0}^{R}inom{b+r}{b}inom{(B-b)+(R-r)}{B-b}[bAle r][(B-b)Ale R-r]\&=sum_{A=1}^{R/B}sum_{b=0}^{B}sum_{r=0}^{R}inom{b+r}{b}inom{(B-b)+(R-r)}{B-b}[r-bAge 0][r-bAle R-AB]\&=sum_{A=1}^{R/B}sum_{P=r-bA=0}^{R-AB}sum_{b=0}^{B}inom{b+r}{b}inom{(B-b)+(R-r)}{B-b}end{aligned} ]

    考虑右式的组合意义:一条路径的权值为从 ((0,0)) 走到 (B,R) ,途径满足 (y=Ax+P) 的点数。右式即为所有路径的权值和。

    引理 1 :定义 (f(W,A,P)) 表示从 ((0,0))((W,AW+P)) 且不超过 (y=Ax+P) 的路径数,则 (f(W,A,P)=inom{(A+1)W+P}{W}-Ainom{(A+1)W+P}{W-1})

    证明:

    考虑一条从 ((0,0))((W,AW+P)) 的路径,枚举第一次穿过 (y=Ax+P) 的位置:

    [inom{(A+1)W+P}{W}=f(W,A,P)+sum_{i=0}^{W-1}f(i,A,P)inom{A(W-i)+W-i-1}{W-i} ]

    考虑一条从 ((0,0))((W-1,AW+P+1)) 的路径,枚举第一次穿过 (y=Ax+P) 的位置:

    [egin{aligned} inom{(A+1)W+P}{W-1}&=sum_{i=0}^{W-1}f(i,A,P)inom{A(W-i)+W-i-1}{W-i-1}\ &=frac{1}{A}sum_{i=0}^{W-1}f(i,A,P)inom{A(W-i)+W-i-1}{W-i} end{aligned} ]

    我们惊讶的发现 (f(W,A,P)=inom{(A+1)W+P}{W}-Ainom{(A+1)W+P}{W-1})

    在这道题中,把右式要求的问题记为 (g(B,R,A,P)) ,注意到 (AB+Ple AB+R-ABle R) ,因此 (R) 高于这条线。

    引理 2 :(g(B,R,A,P))(P) 的取值无关,且 (g(B,R,A,P)=sumlimits_{i=0}^{B}inom{B+R+1}{i}A^{B-i})

    枚举路径上的点,可以得到 (g(B,R,A,P)=sumlimits_{i=0}^{B}inom{(A+1)i+P}{i}inom{R+B-(A+1)i-P}{B-i})

    于是:

    [egin{aligned}&g(B,R,A,P)-Ag(B-1,R+1,A,P)\&=sum_{i=0}^{B}inom{(A+1)i+P}{i}left(inom{R+B-(A+1)i-P}{B-i}-Ainom{R+B-(A+1)i-P}{B-i-1} ight)\&=sum_{i=0}^{B}inom{(A+1)i+P}{i}f(B-i,A,R-AB-P)end{aligned} ]

    考虑这个式子的组合意义,就是从 ((0,0)) 走到 ((i,Ai+P)) ,再沿 (y=Ax+P) 及以上的点走到 ((B,R))

    考虑双射,在该路径走到 ((i,Ai+P)) 时额外往上走一步,即走到 ((i,Ai+P+1)) 的位置。那么这条路径的含义就变成了枚举最后一次碰到 (y=Ax+P) 的位置,并且最终到达 ((B,R+1)) ,那么方案数显然就是 (inom{B+R+1}{B})

    因此,(g(B,R,A,P)-Ag(B-1,R+1,A,P)=inom{B+R+1}{B}) ,它与 (P) 的取值无关。

    通过递推可以得到 (g(B,R,A,P)=sumlimits_{i=0}^{B}inom{B+R+1}{i}A^{B-i})

    回到原式,那么答案即为:

    [egin{aligned}&sum_{A=1}^{R/B}(R-AB+1)g(B,R,A,*)\&=sum_{A=1}^{R/B}(R-AB+1)sum_{i=0}^{B}inom{B+R+1}{i}A^{B-i}\&=sum_{i=0}^{B}inom{B+R+1}{i}left((R+1)sum_{A=1}^{R/B}A^{B-i}-Bsum_{A=1}^{R/B}A^{B-i+1} ight)end{aligned} ]

    对于 (kin [1,m]) ,求 (sumlimits_{i=0}^{n-1}i^{k}) 可以用伯努利数 (mathcal O(mlog m)) 快速计算。

    时间复杂度 (mathcal O(mlog m))

  • 相关阅读:
    Daily Scrum 10.26
    Daily Scrum 10.25
    Daily Scrum 10.24
    Week7 Teamework from Z.XML-任务分配
    Daily Scrum 10.23
    软件工程项目组Z.XML会议记录 2013/10/22
    Week7 Teamework from Z.XML-NABC
    cocos2d-x环境搭建 摘自百度文库
    Go 接口
    Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey读书笔记
  • 原文地址:https://www.cnblogs.com/wlzhouzhuan/p/15248753.html
Copyright © 2020-2023  润新知