TB椰程 TypeBuddy 打字搭子

排列组合计数基础

CSP-J · 编程模板 · 片段 · cpp · 难度 3/5 · 共 434 字

排列考虑顺序、组合不计,公式含阶乘

  • 初赛专项
  • 排列组合

前置内容

正文

// 排列组合计数基础
// 排列 A(n,m) 考虑顺序
// 组合 C(n,m) 不计顺序
// 公式含阶乘,注意取模
#include <cstdio>
int n, m;
long long f[15];
// 预计算阶乘
void fac() {
    f[0] = 1;
    // 递推:i! = i * (i-1)!
    for (int i = 1; i <= 12; i++)
        f[i] = f[i - 1] * i;
}
int main() {
    scanf("%d%d", &n, &m);
    fac();
    // 排列数:n!/(n-m)!
    long long A = f[n] / f[n - m];
    // 组合数:再除以 m!
    long long C = A / f[m];
    printf("%lld %lld", A, C);
    return 0;
}

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK