加法原理和乘法原理
排列和排列数
组合和组合数
更多的查看:https://oi-wiki.org/math/combinatorics/combination/
示例代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n, m;
ll C(int n, int m){
ll sum = 1ll;
for (int i = 1; i <= m; i++)
sum = sum * (n - m + i) / i;
return sum;
}
int main(){
cin >> n >> m;
cout << C(n, m) << '\n';
return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
int n, m;
ll C[N][N];
int main(){
cin >> n >> m;
C[0][0] = 1;
for (int i = 1; i <= n; i++){
C[i][0] = C[i][i] = 1;
for (int j = 1; j <= n; j++) C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
}
cout << C[n][m] << '\n';
return 0;
}
组合数学(复刷内容)
- 排列组合
- 特殊优先
- 捆绑与插空
- 隔板法
- 错位排列
- 抽屉原理
- Catlan数
- 补集思想(集合和子集,逆向思维)
- 容斥原理
- 简单的Nim游戏
杨辉三角Pascal`s triangle
https://www.shuxuele.com/pascals-triangle.html
杨辉三角的应用
大纲要求
•【2】加法原理
•【2】乘法原理
•【4】排列及计算公式
•【4】组合及计算公式
•【4】杨辉三角公式