求助!!!
查看原帖
求助!!!
520028
aurora_Yc楼主2021/5/23 15:45
#include <iostream>
using namespace std;
int n,ans;
bool vis[3][100],a[100];
void dfs(int i){
	if(i>n){
		ans++;
		if(ans<=3){
			for(int m=1;m<=n;m++){
				cout<<a[m]<<" ";
			}
			cout<<endl;
		}
		return;
	}
	for(int j=1;j<=n;j++){
		if(vis[0][j]==0&&vis[1][i-j+30]==0&&vis[2][i+j]==0){
			a[i]=j;
			vis[0][j]=1;
			vis[1][i-j+30]=1;
			vis[2][i+j]=1;
			dfs(i+1);
			vis[0][j]=0;
			vis[1][i-j+30]=0;
			vis[2][i+j]=0;
		}
	}
}
int main(){
	cin>>n;
	dfs(1);
	cout<<ans;
	return 0;
}
2021/5/23 15:45
加载中...