4 皇后有几个解
4×4 的棋盘上放 4 个互不攻击的皇后。运行下面这段程序:
def ok(col, c):
r = len(col)
for i in range(r):
if col[i] == c or abs(col[i] - c) == r - i:
return False
return True
def queens(n):
st = {"c": 0, "v": 0}
col = []
def dfs():
st["v"] += 1
if len(col) == n:
st["c"] += 1
return
for c in range(n):
if not ok(col, c):
continue
col.append(c)
dfs()
col.pop()
dfs()
return st["c"], st["v"]
print(queens(4)[0])
全部评论