#SC2024SD2T5. 计算系数

计算系数

题目描述

(计算系数)给定一个多项式 (ax+by)k(ax+by)^k,请求出多项式展开后 xn×ymx^n\times y^m 项的系数。

anbmC(n+m,n)a^n * b^m * C(n+m,n)

输入格式

输入共一行,包含 55 个整数,分别为 a,b,k,n,ma,b,k,n,m,每两个整数之间用一个空格隔开。

输出格式

输出共一行,包含一个整数,表示所求的系数。

这个系数可能很大,输出对 109+710^9 + 7 取模后的结果。

1 1 3 1 2
3

代码可以用于处理 0k10000000\le k\le 10000000n,mk0\le n,m\le kn+m=kn+m=k0a,b1060\le a,b\le 10^6 的情况。

试补全程序。

思路提示:使用二项式定理。

#include<bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int n;
long long ans = 1;
long long kuai(int x, int y) {
    if (y == ①) {
        return 1;
    }
    long long k = kuai(x, y >> 1);
    k = k * k % mod;
    if (y & 1) {
        k = k * x % mod;
    }
    return k;
}
int main() {
    cin >> a >> b >> k >> n >> m;
    ans = kuai(a, ②) * kuai(b, ③) % mod;
    for (int i = 1; i <= n + m; i++) {
        ans = ans * ④ % mod;
    }
    for (int i = 1; i <= n; i++) {
        ans = ans * ⑤ % mod;
    }
    for (int i = 1; i <= m; i++) {
        ans = ans * kuai(i, mod - 2) % mod;
    }
    cout << ans;
    return 0;
}

① 处应填

  • A. 0
  • B. 1
  • C. 2
  • D. -1

② 处应填

  • A. k
  • B. n + m
  • C. m
  • D. n

③ 处应填

  • A. k
  • B. n + m
  • C. m
  • D. n

④ 处应填

  • A. a + i
  • B. i
  • C. b + i
  • D. n + m - i

⑤ 处应填

  • A. kuai(i, mod - 2)
  • B. kuai(i, mod)
  • C. kuai(i, mod - 1)
  • D. i

输出格式

只有一行,为五个连续写出的大写字符,表示每个空你的选项。