组合型枚举
0.简介
同 $C_{m}^{n} $
1.代码模板
#include<bits/stdc++.h>
using namespace std;
int n, m;
vector<int> chosen;
// x为当前选择的位, n-x+1为剩余可以选择的数量
void DFS(int x) {
if(chosen.size() > m || chosen.size() + (n - x + 1) < m) {
return;
}
// 选满了m 个数
if(x == n + 1) {
for(int num : chosen) {
cout << num << " ";
}
cout << endl;
return;
}
// 选择当前值
chosen.push_back(x);
DFS(x+1);
// 不选择当前值
chosen.pop_back();
DFS(x+1);
}
int main() {
cin >> n >> m;
DFS(1);
return 0;
}