#LAISIR59. N 皇后問題(N-Queens Problem)
N 皇后問題(N-Queens Problem)
🏰 N 皇后問題(N-Queens Problem)
📖 題目描述
在一個 N × N 的國際象棋棋盤上,放置 N 個皇后,使得任意兩個皇后都不能互相攻擊。
也就是說,任何兩個皇后都 不能在同一行、同一列、或同一條對角線上。
請你輸出所有可能的擺放方案。
每種方案以 N 行表示,每行一個整數,代表該行皇后所在的列號(從 1 開始編號)。
若有多種方案,請按 字典序 從小到大輸出。
📥 輸入格式
輸入一行,包含一個整數:
N
📤 輸出格式
輸出所有方案,每個方案之間空一行。 若無任何方案,輸出一行:
No Solution
📊 數據範圍
1 ≤ N ≤ 12
💡 輸入樣例 1
4
💬 輸出樣例 1
2 4 1 3
3 1 4 2
🧠 樣例說明
共有兩種方法能在 4 × 4 棋盤上放置 4 個皇后,且彼此不攻擊。
🧩 提示與思路
-
可使用 回溯法(Backtracking) 或 DFS 深度優先搜索。
-
每次在當前行放置一個皇后,然後檢查與之前行的皇后是否衝突。
-
檢查條件:
- 是否在同一列;
- 是否在同一主對角線;
- 是否在同一副對角線。
-
若可行,繼續遞迴到下一行;否則回溯。
Related
In following homework: