_Memory @ 2024-01-07 22:12:48
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[105],b[105],c[105],d[105],ans,n,m,q,sum;
int print(){
if(ans<=2){
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
ans++;
}
void dfs(int x){
if(x>n){
print();
return ;
}
for(int i=1;i<=n;i++){
if(b[i]==0&&c[x+i]==0&&d[i-j+n]==0){
a[x]=i;
b[i]=1;
c[x+i]=1;
d[x-i+n]=1;
dfs(x+1);
b[i]=0;
c[x+i]=0;
d[x-i+n]=0;
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<ans;
return 0;
}
蒟蒻实在不明白为什么错了,打表的数据都是对的然后全 RE,有点不甘心用打表 A 这道题
by MC小萌新 @ 2024-01-07 22:19:08
ub 了,原因是返回型为 int 的 print 函数并没有返回值。
by _Memory @ 2024-01-13 23:16:02
@MC小萌新 万分感谢大佬,已经解决了