molakeser @ 2024-10-01 18:49:36
最后一个点WA
#include <bits/stdc++.h>
using namespace std;
const int N=20;
int a[N],b[N],c[N],d[N],sum,n;
void s(int i) {
for(int j=1; j<=n; j++) {
if(b[j]==0&&c[i+j]==0&&d[i-j+7]==0) {
a[i]=j;
b[j]=c[i+j]=d[i-j+7]=1;
if(i==n) {
sum++;
if(sum<=3) {
for(int k=1; k<=n; k++) {
cout<<a[k]<<" ";
}
cout<<endl;
}
} else s(i+1);
b[j]=c[i+j]=d[i-j+7]=0;
}
}
}
int main() {
cin>>n;
s(1);
cout<<sum;
return 0;
}
by Moco_jof @ 2024-10-03 13:58:23
嗨嗨嗨!
#include <iostream>
#include <cstdio>
using namespace std;
int a[15],ans,n;
bool b[15],c[100],d[100];
void search(int);
void print();
int main(){
scanf("%d",&n);
search(1);
printf("%d",ans);
return 0;
}
void search(int i){
for(int j=1;j<=n;j++){
if((!b[j])&&(!c[i+j])&&(!d[i-j+n])){
a[i]=j;
b[j]=1;
c[i+j]=1;
d[i-j+n]=1;
if(i==n){
print();
}else{
search(i+1);
}
b[j]=0;
c[i+j]=0;
d[i-j+n]=0;
}
}
}
void print(){
if(ans<=2){
for(int i=1;i<=n;i++){
printf("%d ",a[i]);
}
printf("\n");
}
ans++;
}