60pt,求调
查看原帖
60pt,求调
1269609
xiaohezi楼主2024/9/13 17:07

用搜索+回溯做的

#include<bits/stdc++.h>
using namespace std;
long long arr[10],n,r,vis[10];
void dfs(long long det,long long cnt){
   if(det==r){
   	for(int i=0;i<r;i++){
   		cout<<setw(3)<<arr[i];
   	}
   	cout<<endl;
   }else{
   	for(int i=cnt+1;i<=n;i++){
   		if(vis[i]==0){
   			arr[det]=i;
   			vis[i]=1;
   			dfs(det+1,i);
   			vis[i]=0;
   		}
   	}
   }
}
int main(){
   cin>>n>>r;
   memset(vis,0,sizeof(vis));
   dfs(0,0);
   return 0;
}

2024/9/13 17:07
加载中...