1304答案

Papyrus在审判你  •  1年前


https://old.ynoip.cn/problem/discuss?id=1304

include<bits/stdc++.h>

int N; int x[50]; int sum=0; bool judge(int k); void bt(int n); int Nqueen(int n){

N=n;
for(int i=1;i<=N;i++){
	x[i]=0;
}
bt(1);
return sum;

} bool judge(int k){

for(int i=1;i<k;i++){
	if(abs(k-i)==abs(x[k]-x[i])||x[i]==x[k]){
		return false;
	}
}
return true;

} void bt(int t){

if(t>N){
    printf("  ");
	for(int i=1;i<=N;i++){
	    printf("  %d  ",x[i]);
    }
    printf("\n");
    sum++;
}
else{
	for(int j=1;j<=N;j++){
		x[t]=j;
		if(judge(t)){
			bt(t+1);
		}
	}
}

} int main(){

int n,ans;
scanf("%d",&n);
ans=Nqueen(n);
if(ans==0){
	printf("no solute!");
}
return 0;

} PS:程序很简单,难点主要在输出的调试上面。(Doge)


评论:

orz


蒙自市蒙自一中马晨烨  •  1年前

请先登录,才能进行评论