八皇后
题目链接在这https://www.luogu.org/problemnew/show/P1219
思路//看的别人的
就是深搜,然后每次递归的是行//列也行
判断是不是符合条件符合递归 就酱好简单可我还是不会
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int arr[100][100];
int a[100],b[100],c[100],d[100];
int n;
int cnt=0;
void dfs(int x)
{
if(x==n+1)
{
if(cnt<3)
{
for(int j=1;j<=n;++j)
{
cout << a[j] << ' ';
}
cout << endl;
}
cnt++;
return;
}
for(int i=1;i<=n;++i)
{
if(b[i]==0&&c[x+i]==0&&d[x-i+n]==0)
{
a[x]=i;
b[i]=1;
c[i+x]=1;
d[x-i+n]=1;
dfs(x+1);
a[x]=0;
b[i]=0;
c[i+x]=0;
d[x-i+n]=0;
}
}
}
int main()
{
cin >> n;
dfs(1);
cout << cnt << endl;
return 0;
}