遇到了一个很玄学的事情......
评测记录
最后一个点WA,而且下载数据后发现并没有出错......

代码如下:
#include<iostream>
using namespace std;
int n;
int sc=0;
int ans[20]={0};
int ll[20]={0};
int z[20]={0};
int f[20]={0};
void dfs(int st){
if(st>n){
sc++;
if(sc>=4) return ;
for(int i=1;i<=n;i++) cout<<ans[i]<<" ";
cout<<endl;
return ;
}
for(int i=1;i<=n;i++){
if(!ll[i]&&!z[st+i]&&!f[st-i+n]){
ll[i]=1;
z[st+i]=1;
f[st-i+n]=1;
ans[st]=i;
dfs(st+1);
ll[i]=0;
z[st+i]=0;
f[st-i+n]=0;
}
}
return ;
}
int main(){
cin>>n;
dfs(1);
cout<<sc;
return 0;
}
谢谢dalao帮忙指点!