八皇后
来源:互联网 发布:手机计步器软件排行 编辑:程序博客网 时间:2024/04/30 17:48
var
ans,i,j,n,k:longint;
a:array[1..13]of longint;
s:array[1..13]of boolean;
d1:array[2..26]of boolean;
d2:array[-12..12]of boolean;
procedure dfs(j:longint);
var i:longint;
begin
if j>n then
begin
inc(ans);
if (ans<=3)and(ans<>0) then
begin
for k:=1 to n do
write(a[k],' ');
writeln;
exit;
end;
exit;
end;
for i:=1 to n do
if (d1[i+j])and(d2[i-j])and(s[i]) then
begin
a[j]:=i;
s[i]:=false;
d1[i+j]:=false;
d2[i-j]:=false;
dfs(j+1);
s[i]:=true;
d1[i+j]:=true;
d2[i-j]:=true;
end;
end;
begin
read(n);
fillchar(s,sizeof(s),true);
fillchar(d1,sizeof(d1),true);
fillchar(d2,sizeof(d2),true);
dfs(1);
write(ans);
end.
ans,i,j,n,k:longint;
a:array[1..13]of longint;
s:array[1..13]of boolean;
d1:array[2..26]of boolean;
d2:array[-12..12]of boolean;
procedure dfs(j:longint);
var i:longint;
begin
if j>n then
begin
inc(ans);
if (ans<=3)and(ans<>0) then
begin
for k:=1 to n do
write(a[k],' ');
writeln;
exit;
end;
exit;
end;
for i:=1 to n do
if (d1[i+j])and(d2[i-j])and(s[i]) then
begin
a[j]:=i;
s[i]:=false;
d1[i+j]:=false;
d2[i-j]:=false;
dfs(j+1);
s[i]:=true;
d1[i+j]:=true;
d2[i-j]:=true;
end;
end;
begin
read(n);
fillchar(s,sizeof(s),true);
fillchar(d1,sizeof(d1),true);
fillchar(d2,sizeof(d2),true);
dfs(1);
write(ans);
end.
0 0
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 六角填数(DFS)
- Easy单例模式
- 欢迎使用CSDN-markdown编辑器
- Codeforces Gym 100962 J. Jimi Hendrix
- 游戏开发时关于UGUI的一些控件无法使用的问题
- 八皇后
- Spark Streaming使用Kafka保证数据零丢失
- 死锁的产生
- 剑指offer经典编程(十三)
- 两种常见的雷击浪涌和雷击浪涌防护电路设计概要
- 喇叭音量调节
- super的理解
- 解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128)
- 单词方阵