33分,求助
查看原帖
33分,求助
744820
Eternal_SZC楼主2023/8/1 17:53
#include<bits/stdc++.h>
using namespace std;
int n,k,a[105],vis[105],b[105]; 
void dfs(int t){
	if(t>k){
		for(int i=1;i<t;i++){
			printf("%d ",b[i]);
		}
		puts("");
		return ;
	}
	for(int i=1;i<=n;i++){
		if(a[i]==b[t-1]) continue;
		b[t]=a[i];
		dfs(t+1);
		b[t]=0;
	}
}
template <typename TM>
void in(TM &n){
	char c=getchar();
	int f=1;
	while ((c>'9' || c<'0') && c!='-') c=getchar();
	if(c=='-') f=-1, c=getchar();
	for(n=0; c>='0'&&c<='9'; c=getchar()) n=n*10+c-'0';
	n*=f;
}
int main(){
	in(n),in(k);
	for(int i=1;i<=n;i++){
		a[i]=i;
	}
	dfs(1);
	return 0;
} 
2023/8/1 17:53
加载中...