N皇后超加速 發表於 2022-05-25 | 分類於 algorithm | 0 comments 大家都知道8皇后 但是有看過這麼鬼的嗎 位元運算 可以,這很星爆 1234567891011121314151617181920212223242526272829303132333435#include <iostream> using namespace std; int n,limit,cnt; int x[21],k=1; //行,左對角線,右對角線 void DFS(int row,int left,int right) { if(row!=limit) { int pos=limit&~(row|left|right); while(pos) { //找到的可以放皇后的位置 int p=pos&-pos;// pos & (~pos+1); aka lowbit pos&=pos-1; DFS(row|p,(left|p)<<1,(right|p)>>1); } } else { cnt++; } } int main() { while(cin>>n) { cnt=0; limit=(1<<n)-1; DFS(0,0,0); cout<<cnt<<endl; } } 參考文章:N皇后問題(各種優化)