二十八 211. 计算系数 (组合计数|逆元)
组合计数
import java.util.*;
public class Main {
private static final int mod = 10007;
private static int[][] C = new int[1010][1010];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int k = sc.nextInt();
int n = sc.nextInt();
int m = sc.nextInt();
a %= mod;
b %= mod;
for (int i = 0; i <= k; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0) {
C[i][j] = 1;
}
else {
C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;
}
}
}
int res = C[k][n];
for (int i = 0; i < n; i++) {
res = res * a % mod;
}
for (int i = 0; i < m; i++) {
res = res * b % mod;
}
System.out.println(res);
}
}
逆元
import java.util.*;
public class Main {
private static final int mod = 10007;
private static int fastPow(int a, int k) {
a %= mod;
int res = 1;
while (k != 0) {
if ((k & 1) != 0) {
res = res * a % mod;
}
a = a * a % mod;
k >>= 1;
}
return res;
}
private static int C(int n, int m) {
int res = 1;
for(int i = 1, j = n; i <= m; i++, j--) {
res = res * j % mod * fastPow(i, mod - 2) % mod;
}
return res;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int k = sc.nextInt();
int n = sc.nextInt();
int m = sc.nextInt();
int res = C(k, n) * fastPow(a, n) % mod * fastPow(b, m) % mod;
System.out.println(res);
}
}
分类:
蓝桥杯每日一题2024
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律