1 条题解

  • 0
    @ 2024-3-8 16:45:28
    思路

    这个题其实是隔板法的变形,区别就是最左和最右两段的空也可以放,所以 m-k头母牛,加上左右两端就是m-k+1个空隙,k头公牛相当于k个隔板,答案就是C(m-k+1,k)。

    参考代码
    //递推求逆元
    void init()
    {
        fact[0] = 1;
        for (int i = 1; i <= 10000; i++)
        {
            fact[i] = fact[i - 1] * i % MOD;
        }
        finv[0] = finv[1] = inv[1] = 1;
        for (int i = 2; i <= 10000; i++)
        {
            inv[i] = ((-1 * (MOD / i) * inv[MOD % i] % MOD) + MOD) % MOD;
            finv[i] = finv[i - 1] * inv[i] % MOD;
        }
    }
    //计算组合
    long long C(int n, int m)
    {
        return fact[n] * finv[m] % MOD * finv[n - m] % MOD;
    }
    
    • 1

    信息

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