n皇后时间爆了
查看原帖
n皇后时间爆了
1229340
zyc230940Xuvqiaoxi楼主2024/7/22 11:31

求悬

#include<bits/stdc++.h>
using namespace std;

int n;
int l[20];
long long cnt=0;

bool is(int x, int y){
	for(int i=0;i<x;i++)
		if((l[i]==y) || abs(l[i]-y)==abs(x-i)) return false;
	return true;
}

void dfs(int num){
	if(num==n){
        if(cnt<3){
		    for(int i=0;i<n;i++) cout<<l[i]+1<<" ";
		    cout<<endl;
        }
        cnt++;
		return ;
	}else{
		for(int i=0;i<n;i++){
			if(is(num, i)){
				l[num]=i;
				dfs(num+1);
			}
		}
	}
}


int main(){
	cin>>n;
	dfs(0);
    cout<<cnt;
	return 0;
}
2024/7/22 11:31
加载中...