Metal Steak

Hard to eat

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 79 Stories :: 0 Comments :: 0 Trackbacks

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

int addr[101], n, ans = 0;

bool valid(int x, int y);
void queens(int x);

int main()
{
    memset(addr, 
0sizeof addr);

    cin 
>> n;

    queens(
1);

    cout 
<< "total=" << ans << endl;

    
return 0;
}

bool valid(int x, int y)
{   
int dbg = 0;
    
for(int i = 1; i < x; i++)
        
if((addr[i] - (x - i) == y)
         
||(addr[i] + (x - i) == y)
         
||(addr[i] == y))
            
return false;
    
return true;
}

void queens(int x)
{
    
if(x > n)
        ans
++;
    
else
        
for(int i = 1; i <= n; i++)
            
if(valid(x, i))
            {
                addr[x] 
= i;
                queens(x 
+ 1);
                addr[x] 
= 0;
            }
}

posted on 2009-09-15 21:18 mad4alcohol 阅读(86) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理