時限:1000ms 記憶體限制:10000k 總時限:3000ms
描述輸出8皇后問題所有結果。
輸入沒有輸入。
輸出每個結果第一行是no n:的形式,n表示輸出的是第幾個結果;下面8行,每行8個字元,『a』表示皇后,『.』表示空格。不同的結果中,先輸出第乙個皇后位置靠前的結果;第乙個皇后位置相同,先輸出第二個皇后位置靠前的結果;依次類推。
輸入樣例
輸出樣例
輸出的前幾行:
no 1:
a.......
....a...
.......a
.....a..
..a.....
......a.
.a......
...a....
no 2:
a.......
.....a..
.......a
..a.....
......a.
...a....
.a......
....a...
提示輸出樣例是正確輸出結果的前幾行。
**
#include#includeusing namespace std;
int cnt = 0,a[8];//儲存的是每一行中存放皇后的列的位置,如a[1]=8,表示第一行第八列放皇后
//好處,可以直接避免一行出現兩個皇后
bool judge(int sx,int sy)
if(abs(sx - i)==abs(a[i] - sy))
} return true;
}void print()else
} cout
} }}int main()
回溯篇 8皇后NOJ10078
時限 1000ms 記憶體限制 10000k 總時限 3000ms 在8 8 n n 格的西洋棋上擺放n個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。沒有輸入 每個結果第一行是no n 的形式,n表示輸出的是第幾個結果 下面8行,每行8個字元,a 表示...
NOJ1267 N皇后(非位運算)
nqueen問題如果用簡單的條件 即每次準備在第i行上找擺皇后的位置的時候,就從第i行的第0列到第n列 依次找符合條件的點 看和前面已經擺好皇后的i 1個皇后比較,看是否在同一列上是否在同一主對角線或 者副對角線上 搜尋,這個過程耗時較多。解決方法 每放乙個皇后,就將該皇后所在位置的列號作為 lie...
noj演算法題 裝載問題
裝載問題 回溯,子集樹 時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入 多個測例,每個測例的輸入佔兩行。第一行一次是c1 c...