代码输出有问题!求大佬!
查看原帖
代码输出有问题!求大佬!
1016748
Wangyuqi2010楼主2024/2/25 10:59
#include<bits/stdc++.h>
using namespace std;
int m1[30],m2[30],m3[30],ans[15],mark;
int n;
void state(int i,int j,int k){
	ans[i]=j;
	m1[j]=k;
	m2[i+j]=k;
	m3[i-j+n]=k;
}
void dfs(int step) {
	if(step>n){
		mark++;
		if(mark<=3){
			for(int l=1;l<=n;l++){
				cout<<ans[l]<<' ';
			}
			cout<<endl;
		}
		else return ;
	}
	for(int j=1;j<=n;j++){
		if(m1[j]||m2[step+j]||m3[step-j+n]) continue;
		state(step,j,1);
		dfs(step+1);
		state(step,j,0);
	}
}
int main() {
	int n;
	cin>>n;
	dfs(1);
	cout<<mark;
	return 0;
}
2024/2/25 10:59
加载中...