您的位置:首页 > 其它

hdu2553

2016-01-15 00:00 302 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2553





Nqueen问题

#include
"
iostream
"

using

namespace
std;

int
n;

int
a[
20
];

int
b[
20
];

int
c;

bool
Panduan(
int
x)
{

for
(
int
i
=
0
; i
<
x; i
++
)
{

if
( (a[x]
-
a[i])
==
0

||
(abs(a[x]
-
a[i])
-
abs(x
-
i))
==
0
)
return

false
; //关键点
}

return

true
;
}

void
dfs(
int
y ,
int
z)
{

for
(
int
p
=
0
; p
<
z; p
++
)
{
a[y]
=
p;

if
(Panduan(y))
{

if
(y
==
z
-
1
) c
++
;

else
dfs(y
+
1
,z);
}
}
}

int
main()
{

for
(
int
q
=
1
;q
<=
10
;q
++
)
{
c
=
0
;
dfs(
0
, q);
b[q]
=
c;
}

while
(cin
>>
n,n)
{
cout
<<
b

<<
endl;
}

return

0
;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: