AcWing 93. 递归实现组合型枚举
原题链接
简单
作者:
飞呀
,
2021-05-10 23:25:31
,
所有人可见
,
阅读 196
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
const int N = 30;
int n, m;
int path[N];
void dfs(int u, int start){
if(u > m){
for(int i = 1; i <= m; i++){
printf("%d ", path[i]);
}
printf("\n");
}else{
for(int i = start; i <= n; i++){
path[u] = i;
dfs(u+1, i+1);
//path[u] = 0; //这个恢复可有可无,因为路径是覆盖的,若用vector存,就要pop_back。
}
}
}
int main(){
cin >> n >> m;
dfs(1, 1);
return 0;
}