求救

学术版

@[doujiamu](/user/947142) ```cpp #include<bits/stdc++.h> using namespace std; int n; int a[15]; int ans; int cnt; void print() { if(cnt==3) { ans++; return ; } for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } cout<<endl; cnt++; ans++; } bool check(int x,int y) { for(int i=1;i<y;i++) { if(x==a[i]||x-a[i]==i-y||x-a[i]==y-i) { return false; } } return true; } void dfs(int l) { if(l==n+1) { print(); return ; } else { for(int i=1;i<=n;i++) { if(check(i,l)) { a[l]=i; dfs(l+1); } } } } signed main() { cin>>n; dfs(1); cout<<ans<<endl; return 0; } ```
by czy20080428 @ 2024-04-04 10:08:39


@[czy20080428](/user/1217367) 看懂了,谢谢大哥 不过我还是不明白我的问题出在哪
by doujiamu @ 2024-04-04 11:06:38


|