想要更丰富的展现,请使用Markdown
by 土田共戈 @ 2018-10-20 20:11:45
markdown大法一声吼
by tryrtj @ 2018-10-20 20:13:24
```
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iomanip>
using namespace std;
int a[15],vis[15][15],s=0,n;
void print()
{
s++;
if(s<=3)
{
for(register int i=1;i<=n;i++)
printf("%d ",a[i]);
printf("\n");
}
return;
}
void eigh(int i)
{
if(i>n){print();return;}
else
for(register int j=1;j<=n;j++)
{
if(vis[i][j]!=1)
{
a[i]=j;
for(register int e=1;e<=n;e++)
{
vis[e][j]=1,vis[i][e]=1;
if(i+e<=n&&j+e<=n) vis[i+e][j+e]=1;
if(i+e<=n&&j-e>=1) vis[i+e][j-e]=1;
if(i-e>=1&&j+e<=n) vis[i-e][j+e]=1;
if(i-e>=1&&j-e>=1) vis[i-e][j-e]=1;
//四个方向宣布占领
}
eigh(i+1);
for(register int e=1;e<=n;e++)
{
vis[e][j]=0,vis[i][e]=0;
if(i+e<=n&&j+e<=n) vis[i+e][j+e]=0;
if(i+e<=n&&j-e>=1) vis[i+e][j-e]=0;
if(i-e>=1&&j+e<=n) vis[i-e][j+e]=0;
if(i-e>=1&&j-e>=1) vis[i-e][j-e]=0;
}
}
}
return;
}
int main()
{
scanf("%d",&n);
eigh(1);
printf("%d",s);
return 0;
}
```
by ge_yao @ 2018-10-20 20:13:28
```
include<iostream>
include<cstdio>
include<cmath>
include<algorithm>
include<iomanip>
using namespace std;
int a[15],vis[15][15],s=0,n;
void print() {
s++; if(s<=3){
for(register int i=1;i<=n;i++) printf("%d ",a[i]);
printf("\n");
}
return;
}
void eigh(int i)
{
if(i>n)
{
print();
return;
}
else for(register int j=1;j<=n;j++)
{ if(vis[i][j]!=1)
{ a[i]=j;
for(register int e=1;e<=n;e++) { vis[e][j]=1,
vis[i][e]=1;
if(i+e<=n&&j+e<=n)
vis[i+e][j+e]=1;
if(i+e<=n&&j-e>=1)
vis[i+e][j-e]=1;
if(i-e>=1&&j+e<=n)
vis[i-e][j+e]=1;
if(i-e>=1&&j-e>=1)
vis[i-e][j-e]=1; //四个方向宣布占领 }
eigh(i+1);
for(register int e=1;e<=n;e++) { vis[e][j]=0,
vis[i][e]=0;
if(i+e<=n&&j+e<=n)
vis[i+e][j+e]=0;
if(i+e<=n&&j-e>=1)
vis[i+e][j-e]=0;
if(i-e>=1&&j+e<=n)
vis[i-e][j+e]=0;
if(i-e>=1&&j-e>=1)
vis[i-e][j-e]=0;
}
}
}
return;
}
int main() {
scanf("%d",&n); eigh(1); printf("%d",s); return 0; }
```
手动帮排
by tryrtj @ 2018-10-20 20:15:30