求助 我不是很看得懂
查看原帖
求助 我不是很看得懂
332549
幽灵特工楼主2021/1/28 19:02

这是我从某文章看到的解决N皇后的代码

请问这个check是如何能判断皇后冲突的?

int n;
int a[20];
int ans=0;
bool check(int c,int d){
	for(int i=1;i<=n;i++){
		if(a[i]==c||(abs(a[i]-c))==abs(i-d))return 0;
	}
	return 1;
}
void DFS(int i){
	if(i==n){
		ans++;
		return ;//如有必要打印方案 
	}
	for(int c=0;c<n;c++){
		if(check(c,i)){
			a[i]=c;
			DFS(i+1); 
		}
	}
}
2021/1/28 19:02
加载中...