ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#213051 | #389. 八皇后问题 | walle2012 | Judgement Failed | / | / | C++ | 657b | 2024-11-04 22:25:03 | 2024-11-04 22:25:04 |
answer
#include <bits/stdc++.h>
using namespace std;
int vis1[110],vis2[110],vis3[110];
int ret[10],num;
void dfs(int x)
{
if(x==9)
{
num++;
printf("No. %d\n",num);
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
if(ret[j]==i)
{
printf("1 ");
}
else
{
printf("0 ");
}
}
printf("\n");
}
return ;
}
for(int i=1;i<=8;i++)
{
if(vis1[i]==0&&vis2[x+i]==0&&vis3[x-i+10]==0)
{
vis1[i]=1;
vis2[x+i]=1;
vis3[x-i+10]=1;
ret[x]=i;
dfs(x+1);
vis1[i]=0;
vis2[x+i]=0;
vis3[x-i+10]=0;
ret[x]=0;
}
}
}
int main()
{
dfs(1);
return 0;
}
Details
Failed to show details