牛客多校第五场 C Easy

Easy

https://ac.nowcoder.com/acm/contest/5670/C

题意

a是和为N的序列,b是何为M的序列,

求在所有情况下的P的和

题解

构造母函数

容易得答案为的系数

现在开始搞母函数 前方多公式高能

然后用二项式定理展开

要求此时的系数,枚举xy的数量,用x, y来补齐即可

完整代码

int fac[Ma], fiv[Ma];

void init() {
    fac[0] = fiv[0] = fac[1] = fiv[1] = 1;
    for (int i = 2; i < Ma; i++)
        fac[i] = (ll)fac[i - 1] * i % mod,
        fiv[i] = (ll)(mod - mod / i) * fiv[mod % i] % mod;
    for (int i = 1; i < Ma; i++)
        fiv[i] = (ll)fiv[i] * fiv[i - 1] % mod;
}

int C(int n, int m) {
    return (ll)fac[n] * fiv[m] % mod * fiv[n - m] % mod;
}

signed main() {
    #if SYNC==0
    ios::sync_with_stdio(false);
    cin.tie(0);
    #endif
    init();
    int T; cin >> T;
    while (T--) {
        int n, m, k; cin >> n >> m >> k;
        if (n > m) swap(n, m);
        ll ans = 0;
        for (int i = 0; i <= n - k; i++) {
            int a = n - k - i, b = m - k - i;
            (ans += (ll)C(k + i - 1, i) * C(k + a - 1, a) % mod * C(k + b - 1, b) % mod)
            %= mod;
        }
        cout << ans << endl;
    }

    return 0;
}
全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
6 收藏 评论
分享
牛客网
牛客企业服务