为什么我的八皇后没有按字典序输出?
查看原帖
为什么我的八皇后没有按字典序输出?
847559
Chtholly__Nota楼主2024/5/20 21:02

我对着题解看了没发现什么不对

代码:

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

int a[114514];

int h[114514],lx[114514],rx[114514],ans;
int n;

void dfs(int x){
	if(x>n){
		ans++;
		if(ans<=3){
			for(int i=1;i<=n;i++) cout<<a[i]<<" ";
			cout<<endl;
		}
		//memset(a,0,sizeof(a));
		return ;
	}
	else{
		for(int i=1;i<=n;i++){
				if(!h[i] && !lx[x-i+15] && !rx[i+x]){
					a[i]=x;
					h[i]=1,rx[i+x]=1,lx[x-i+15]=1;
					dfs(x+1);
					h[i]=0,rx[i+x]=0,lx[x-i+15]=0;
				}
			}
	}
}

int main(){
	cin>>n;
	dfs(1);
	cout<<ans;
    return 0;
}


2024/5/20 21:02
加载中...