7-2 棋盘有地雷的八皇后问题
- 经典回溯法的八皇后。在检测可用位置时跳过地雷位置即可。
- 时间卡的不严,如果想要效率可以对整个棋盘打表。
def main():
# 每个queen在的位置是(idx,queenCol(idx))
x,y = map(int,input().split())
x -= 1
y -= 1
solCount = 0
queenCol = [-1] * 8
def isok(row:int,col:int):
if row == x and col == y:
return False
for (row0, col0) in enumerate(queenCol):
if col0 == -1:
continue
if row == row0 or col == col0:
return False
if row - row0 == col - col0 or row - row0 == col0 - col:
return False
return True
def recur(row:int):
nonlocal solCount
if row == 8: # 完成了一组
solCount