码迷,mamicode.com
首页 > 其他好文 > 详细

saer

时间:2014-10-27 12:31:38      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:ar   for   sp   on   amp   bs   ad   应用   程序   

// erg.cpp : 定义控制台应用程序的入口点。
//>

#include "stdafx.h"
#include"omp.h"
int n;
int q;
void dfs(int b[],int k)
{
    int i,j;
    if(k>n)
    {
        #pragma omp atomic
        q++;
//  find=true;
        return ;
    }
    for(i=1;i<=n;i++)
        {

           for(j=1;j<k;j++)
           {
               if(i==b[j])//不同列  b[j] 表示第j行用了第b[j] 列
                   break;
      int x1=k-j,x2=i-b[j];
      if(x1<0) x1=x1*-1;
      if(x2<0) x2=x2*-1;
               if(x1==x2) //不能斜着相对
                   break;
           }
           if(j<k)
               continue;
            b[k]=i;
            dfs(b,k+1);
       
        }
}

int _tmain(int argc, _TCHAR* argv[])
{
 int i;
 while(scanf("%d",&n))
 {
 q=0;
 omp_set_num_threads(2);
    #pragma omp parallel for
 for(i=1;i<=n;i++)
 {
  
  int y[20];
  y[1]=i;
  dfs(y,2);
 }
 printf("%d\n",q);
 }
 return 0;
}

 

saer

标签:ar   for   sp   on   amp   bs   ad   应用   程序   

原文地址:http://www.cnblogs.com/zhangdashuai/p/4053781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!