W. 八皇后(7.24/7.25)

传统 1000 ms 256 MiB
标准 IO
文本比较

题目描述

8×88\times 8 的棋盘上,部分格子被标记为障碍 #,其余为 .
你需要放置 88 个皇后,使得:

  1. 每个皇后必须落在 . 的格子上,障碍格子禁止摆放
  2. 任意两个皇后不能在同一行、同一列或同一斜线可以越过障碍攻击,即障碍不阻挡视线)。

输出合法方案数。

输入格式

连续 88 行,每行 88 个字符,仅含 .#,表示棋盘。

. 表示可放皇后,# 表示障碍。

输出格式

一行一个整数,表示合法方案数。

样例

样例输入

.#......
..#.....
.......#
........
........
........
........
........

样例输出

57

数据范围与提示

  • 棋盘大小固定为 8×88\times 8
  • 障碍个数 0k150\le k\le 15
  • 回溯逐行放置,用位运算加速列与两条对角线的冲突检测。