题目大意:N皇后 解题思路:用位运算dfs。 代码:
#include
using namespace std;

int tal,sum;
int n;

void dfs(int row,int ld,int rd,int deep)
{
	int pos,p;
	if(row!=tal)
	{
		pos=tal & ~(row | ld | rd);
		while(pos!=0)
		{
			p=pos & -pos;
			pos-=p;
			dfs(row|p,(ld|p)<<1,(rd|p)>>1,deep+1);
		}
	}
	else
		sum++;
}
int main(void)
{
	while(cin>>n,n)
	{
		sum=0;
		tal=(1<
posted on 2011-11-02 22:47  cchun  阅读(148)  评论(0编辑  收藏  举报