4 条题解

  • 0
    @ 2026-2-1 21:00:29

    Lucas 写炸了彻底怒了

    这个题 a,ba,b 没啥用,他能取的数字个数为 ba+1b-a+1 ,我们们设函数 fx,yf_{x,y} 的值为能取到的数字个数为 xx 个,这个 SS 的长度为 yy 的情况数,我们就有式子:

    Ans=i=1nfba+1,iAns=\sum_{i=1}^n f_{b-a+1,i}

    然后我们想怎么求单个的 fx,yf_{x,y}

    列一下情况 f1,1=1f_{1,1}=1 情况为 1f1,2=1f_{1,2}=1 情况为 11f2,1=2f_{2,1}=2 情况为 1,2f2,2=1f_{2,2}=1 情况为 11,12,22f3,1=3f_{3,1}=3 情况为 1,2,3f3,2=6f_{3,2}=6 情况为 11,12,13,22,23,33

    我们可以把每一个 fx,yf_{x,y} 的所有情况看成 fx1,yf_{x-1,y} 的所有情况和 fx,y1f_{x,y-1} 的所有情况后面加上一个数字 yy ,然后就有 fx,y=fx1,y+fx,y1f_{x,y}=f_{x-1,y}+f_{x,y-1} 我们就可把它抽象成一个杨辉三角,那么 fx,y=Cx+y1yf_{x,y}=C_{x+y-1}^{y}

    所以

    Ans=i=1nCba+ii=Cba+n+1n1Ans=\sum_{i=1}^nC_{b-a+i}^{i}=C_{b-a+n+1}^{n}-1

    然后 Lucas就可以了

    Lucas定理

    Lucas 定理是一种求组合数是取模数 pp 为质数情况下的快速求法,Lucas 定理内容:

    $$\left( \begin{array}{c} n \\ m \end{array} \right)\equiv \left( \begin{array}{c} n \mod p \\m \mod p\end{array} \right)\left( \begin{array}{c} \lfloor\frac{n}{p}\rfloor \\ \lfloor\frac{m}{p}\rfloor \end{array} \right)\mod p $$

    n<kn<k 时,(nm)\left( \begin{array}{c} n \\ m \end{array} \right) 规定为 00

    信息

    ID
    232
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    76
    已通过
    14
    上传者