位運算實現八皇后,並列印出結果

2021-06-19 04:39:53 字數 844 閱讀 9888

本篇文章的演算法參考自資料n皇后問題位運算版,c++的**參考自位運算解決八皇后問題

我所做的補充不過是將結果列印出來。

因為每一次位置都是用二進位制來表示,所以列印出二進位制數即標示皇后的位置。考慮到八皇后所放置的位置具有對稱性,所以從頭列印的所有結果與從尾列印出來的所有結果都是一樣的。執行環境為win32。

#include #include #include #include using namespace std;

#define queennum 8

long sum = 0;

long upperlim = (1 << queennum) - 1;

listqueenlist;

void printbinary(int data)

bytelist.push_front(data % 2);

while(maxlength > bytelist.size())

list::iterator iter = bytelist.begin();

for(; iter != bytelist.end(); iter++)

printf("\n");

}int times = 0;

void printqueenlist(list&l)

printf("end\n");

}//八皇后問題

void queentest(int row, int ld, int rd)

}else

if(queenlist.size()> 0)

}int _tmain(int argc, _tchar* argv)

八皇后的後宮們(位運算)

大老婆 include using namespace std intnqueen int n,int l,int h,int r,int row,int col 函式部分可以用三目運算子一行寫完,雖然並沒有什麼意義 二老婆 include using namespace std int n,a 1...

P1219 八皇后 位運算優化

原題鏈結 八皇后,一道非常經典的老題了 但是今天要用位運算優化,老實說一開始有點難理解 實際上現在也暈暈乎乎的,因為實在是位運算苦手 不難但是就是反應不過來,誒這個符號是 啊啊想起來了!不對現在講到哪了 驚 雖然知道了這個符號是幹什麼的 還是看不懂orz 差不多是明白了要幹什麼,總之就是朝著不能放皇...

n皇后 位運算版

n皇后問題是大家在遞迴裡會碰到的乙個經典問題。以前高中我學dfs的時候,老師首先讓我看的就是八皇后。不過這皇后的時間複雜度大家可想而知了。而接下來的位運算將這個效率重新提到乙個高度。我是以前在matrix67大牛那裡學的,最近資料結構實驗剛好碰到n皇后,就在這裡 複述 一遍吧。code void d...