時間限制: 1 sec 記憶體限制: 128 mb
提交: 6 解決: 3
編寫乙個函式,求解皇后問題:在n*n的方格棋盤上,放置n個皇后,要求每個皇后不同行、不同列、不同左右對角線。
要求:1、皇后的個數由使用者輸入,其值不能超過20,輸出所有的解。
2、採用類似於棧求解迷宮問題的方法。
輸入乙個整數n,代表棋盤的大小n*n,
將計算出的彼此不受攻擊的n個皇后的所有放置方案輸出,每種方案佔一行。
4
2 4 1 33 1 4 2
1、規定搜尋時每行從左向右,每列從上往下搜尋!
2、盡量採用較優演算法!
3、使用棧求解!
#include#include#include#define sizemax 20int n;
typedef struct
sqstack;
sqstack *s=(sqstack*)malloc(sizeof(sqstack));
void push(sqstack *&s,int e) //入棧
int check(int n) //判斷這個位置能否放置皇后
void print(sqstack *s) //輸出
void put(int n) //遞迴搜尋
}int main ()
YTU 3005 皇后問題(棧和佇列)
時間限制 1 sec 記憶體限制 128 mb 提交 6 解決 3 編寫乙個函式,求解皇后問題 在n n的方格棋盤上,放置n個皇后,要求每個皇后不同行 不同列 不同左右對角線。要求 1 皇后的個數由使用者輸入,其值不能超過20,輸出所有的解。2 採用類似於棧求解迷宮問題的方法。輸入乙個整數n,代表棋...
YTU 3002 出棧順序(棧和佇列)
時間限制 1 sec 記憶體限制 128 mb 提交 80 解決 20 給出乙個入棧序列,和乙個出棧序列,判斷該出棧序列是否正確。輸入包含三行,第一行為序列的長度n,第二行為n個數表示入棧順序,第三行同樣為n個數,表示出棧順序。我們保證這n個數字不相同。如果該出棧序列正確,則輸出 yes 否則輸出 ...
YTU 3003 括號匹配(棧和佇列)
時間限制 1 sec 記憶體限制 128 mb 提交 2 解決 2 提交 狀態 討論版 假設乙個表示式中只允許包含三種括號 圓括號 和 方括號 和 和花括號 且這三種括號可按任意的次序巢狀使用如 設計乙個演算法,判斷表示式中的括號是否正確配對。輸出結果為yes或者no。順序棧的定義為 typedef...