runtime error 没有输出,代码已经标好注释了
查看原帖
runtime error 没有输出,代码已经标好注释了
272309
QODGOD楼主2021/1/27 22:31
#include<bits/stdc++.h>
using namespace std;
vector<int> ans;//存放第i列的行数 
int n;
int sum,total;
void dfs(int x,int n){
	if(x==n){ 
		while(sum<=3){
			for(int i=0;i<n;i++){
				cout<<ans[i];
				
			}
			cout<<endl;
			sum++;
		} 
		total++;
	}
	else{
		
		if(x==0){
//			cout<<1;
			for(int i=0;i<n;i++){ //特判第0列 
				ans[0]=i;
				dfs(1,n);
			}
		}
		else{
			for(int i=0;i<n;i++){//第x列依次尝试放在i行处 
				for(int j=0;j<x;j++){
//					cout<<1;
					if(i==ans[j]) continue;//判断三个条件,如果不满足则跳过 
					if(i+x==j+ans[j]) continue;
					if(x-i==j-ans[j]) continue;
					ans[x]=i;//若满足条件就存入ans 
					dfs(x+1,n);//摆放下一列 
				}
			}	
		} 
	}
}
int main(){
	cin>>n;
	dfs(0,n);
	cout<<total;
} 
2021/1/27 22:31
加载中...