题目
题解
dfs(u,start),其中u是当前第u个位置,start是从哪里开始枚举
#include<iostream>
using namespace std;
const int N=25;
int n,m;
int path[N];
void dfs(int u,int start){
if(u+n-start<m)return;
if(u==m+1){
for(int i=1;i<=m;i++)cout<<path[i]<<" ";
puts("");
return ;
}
for(int i=start;i<=n;i++){
path[u]=i;
dfs(u+1,i+1);
path[u]=0;
}
}
int main(){
cin>>n>>m;
dfs(1,1);
return 0;
}