dfs实现组合型枚举题目描述:
题解代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e5;
int way[N];
int n,m;
void dfs(int u,int start){
if(u==m){
for(int i=0;i<m;i++) printf("%d",way[i]);
puts("");
return ;
}
for(int i=start;i<=n;i++){
way[u]=i; // 标记
dfs(u+1,i+1); // 迭代
way[u]=0; // 恢复现场
}
}
int main(){
scanf("%d%d",&n,&m);
dfs(0,1);
return 0;
}