1 条题解

  • 1
    @ 2022-11-27 14:44:40
    #include<iostream>
    #include<iomanip>
    using namespace std;
    int n;
    bool d[100],b[100],c[100],flag=false;
    int a[100];
    void print(){
    	flag=true;
    	int i;
    	for(int i=1;i<=n;i++){
    		cout<<setw(5)<<a[i];
    	}
    	cout<<endl;
    }
    int search(int i){
    	for(int j=1;j<=n;j++){
    		if((!b[j])&&(!c[i+j])&&(!d[i-j+n-1])){
    			a[i]=j;
    			b[j]=1;
    			c[i+j]=1;
    			d[i-j+n-1]=1;
    			if(i==n) print();
    			else search(i+1);
    			b[j]=0;
    			c[i+j]=0;
    			d[i-j+n-1]=0;
    		}
    	}
    }
    int main(){
    	cin>>n;
    	search(1);
    	if(flag==false){
    		cout<<"no solute!";
    	}
    }
    
    
    
    • 1

    信息

    ID
    1304
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    120
    已通过
    34
    上传者