不会排序,求调@我
查看原帖
不会排序,求调@我
743806
ammdyc楼主2023/8/27 11:34
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10; 
int n,t,cnt,f;
int a[14][14],b[14],c[50],d[50];
char s[50][50];
void dfs(int i){
	if(i==n+1){
		f++;
		t++; 
		for(int x=1;x<=n;x++){
			for(int y=1;y<=n;y++){
				if(f<=3&&a[y][x]==1){
					cout<<y<<" ";
				}
			}
		}
		if(f<=3)
			cout<<endl;
	}	
	int j; 
	for(j=1;j<=n;j++){
  
		if((!b[j])&&(!c[i+j])&&(!d[j-i+(n-1)])){  
			a[i][j]=1;
			b[j]=1;  
			c[i+j]=1;
			d[j-i+(n-1)]=1;			 
			dfs(i+1);
			b[j]=0;
			c[i+j]=0;
			d[j-i+(n-1)]=0;
			a[i][j]=0;
		}
	}
	
}
int main(){
	cin>>n;
	dfs(1);
	cout<<t;
	return 0;
}
2023/8/27 11:34
加载中...