位运算求解n皇后问题,最高好像可以做到13皇后……
超级神奇的方法,位运算主要用来记录已填皇后的位置~
int limit=1;
for(int i=1;i<=n;i++) limit*=2;limit--;
void findd(int r,int ld,int rd)
{
if(r==limit)
{
sum++;return;
}
int z=limit&~(r|ld|rd);
while(z)
{
int k=z&(-z);z-=k;
findd(r+k,(ld+k)<<1,(rd+k)>>1);
}
}