我觉得我的思路没问题,不知道咋改
查看原帖
我觉得我的思路没问题,不知道咋改
1321318
User_BDAD楼主2024/4/18 15:46
#include<bits/stdc++.h>
using namespace std;
#define N 1001
int n,ans=0,b1[N],b2[N],b3[0], a[N];;
void dfs(int x){
	if(x==n){
		ans++;
		if(ans<=3)
			for(int i = 1;i<=n;i++)cout<<a[i]<<" ";
		cout<<endl;
		return;
	}
	
	for(int i = 1;i<=n;i++){
		if(b1[i]==0&&b2[i+x]==0&&b3[i-x+n]==0){
			a[x] = i;
			b1[i]=1,b2[i+x]=1,b3[i-x+n]=1;
			dfs(x+1);
			b1[i]=0,b2[i+x]=0,b3[i-x+n]=0;
		}
	}
}


int main(){
	cin>>n;
	dfs(1);
//	memset(a,0,sizeof(a));
	//for(int i = 0;i<n;++i)cout<<a[i];
	cout<<ans;
	return 0;
}
2024/4/18 15:46
加载中...