样例过了,为啥全紫???QAQ
查看原帖
样例过了,为啥全紫???QAQ
1036284
LYL__1107楼主2024/10/4 16:45
#include<bits/stdc++.h>
using namespace std;
int sum,n,h[200],l[200],zd[200],yd[200];
int print(){
	if(sum<=2){
		for(int j=1;j<=n;j++) cout<<h[j]<<" ";
		cout<<endl;
	}
	sum++;
}
void dfs(int i){
	if(i>n){
		print();
		return;
	}else{
		for(int j=1;j<=n;j++){
			if(l[j]==0&&yd[i+j]==0&&zd[i-j+n]==0){
				h[i]=j;
				l[j]=1;
				yd[i+j]=1;
				zd[i-j+n]=1;
				dfs(i+1);
				l[j]=0;
				yd[i+j]=0;
				zd[i-j+n]=0;
			}
		}
	}
}
int main(){
	cin>>n;
	dfs(1);
	cout<<sum;
}

结果

2024/10/4 16:45
加载中...