YTU 3005 皇后問題(棧和佇列)

2021-07-11 01:19:03 字數 860 閱讀 5772

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 6  

解決: 3

編寫乙個函式,求解皇后問題:在n*n的方格棋盤上,放置n個皇后,要求每個皇后不同行、不同列、不同左右對角線。

要求:

1、皇后的個數由使用者輸入,其值不能超過20,輸出所有的解。

2、採用類似於棧求解迷宮問題的方法。

輸入乙個整數n,代表棋盤的大小n*n,

將計算出的彼此不受攻擊的n個皇后的所有放置方案輸出,每種方案佔一行。

4

2 4 1 3

3 1 4 2

1、規定搜尋時每行從左向右,每列從上往下搜尋!

2、盡量採用較優演算法!

3、使用棧求解!

#include#include#include#define sizemax 20

int 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...