添加链接描述 stl
#include<bits/stdc++.h>
using namespace std;
int arr[50];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
arr[i]=1;
}
do{
for(int i=1;i<=n;i++){
if(arr[i]){
cout<<i<<" ";
}
}
cout<<"\n";
}while(prev_permutation(arr+1,arr+1+n));
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int>ans;
void dfs(int u,int start){
if(u>=n||ans.size()+n-start+1<m)return ;
if(ans.size()==m){
for(auto it:ans){
cout<<it<<" ";
}
cout<<"\n";
return ;
}
for(int i=start;i<=n;i++){
ans.push_back(i);
dfs(u+1,i+1);
ans.pop_back();
}
}
int main(){
cin>>n>>m;
dfs(0,1);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,m;
int vis[50];
vector<int>ans;
int tot=0;
void dfs(int u){
if(ans.size()>m||ans.size()+n-u+1<m)return ;
if(u==n){
if(ans.size()==m){
for(auto it:ans){
cout<<it<<" ";
}
cout<<"\n";}
return ;
}
ans.push_back(u+1);
dfs(u+1);
ans.pop_back();
dfs(u+1);
}
int main(){
cin>>n>>m;
dfs(0);
return 0;
}
|