题目描述
blablabla
样例
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 30;
int way[N];
int n,m;
// u:当前应该枚举哪一个位置
// start:应该从哪一个数开始枚举
void dfs(int u , int start){
if(u+n-start<m) return;
if(u==m+1){
for(int i = 1;i<=m;i++){
printf("%d ",way[i]);
}
puts("");
return;
}
for(int j = start;j <= n;j++){
way[u] = j;
dfs(u+1,j+1);
way[u] = 0; // 恢复现场
}
}
int main(){
cin>>n;
cin>>m;
dfs(1,1);
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla