コード例 #1
0
ファイル: N-Queens II.cpp プロジェクト: qingchen021/Leetcode
 void NQueen(vector<int> & steps, const int & n, int & res)
 {
 	if(steps.size() == n)
 	{
 		res++;
 	}
 	else
 	{
 		for(int i = 0 ; i < n ;i++)
 		{
 			if(IsVaild(steps, i))
 			{
 				steps.push_back(i);
 				NQueen(steps,n, res);
 				steps.pop_back();
 			}
 		}
 	}
 }
コード例 #2
0
void NQueen(int k,int n)
{ 
     for(int i=1;i<=n;i++)
     {
       if(place(k,i))
       {
         x[k]=i;
      
         if(k==n)
         {                      
            for(l=1;l<=n;l++)
             a[p][l]=x[l];
             p++;   
                 
         } 
         
         else
          NQueen(k+1,n);
       }
     }
       
}
コード例 #3
0
int main(){
   
 scanf("%d",&cas);
 
 for(c=0;c<cas;c++){
  
 
  for(int q=0;q<8;q++)
   for(int j=0;j<8;j++)
    scanf("%d",&w[q][j]);
 
 
 
 
 p=0;
 NQueen(1,8); 
 
 sm=0;

 for(int i=0;i<p;i++){
   sum=0;
  for(int j=1;j<=8;j++){ 
 
   sum=sum+w[j-1][a[i][j]-1]; 
}
   
  
     
 if(sum>sm)
  sm=sum;
   }
 
  printf("%5d\n",sm);
  
}
return 0;
}
コード例 #4
0
ファイル: N-Queens II.cpp プロジェクト: qingchen021/Leetcode
 int totalNQueens(int n) {
 	vector<int> steps;
 	int ret = 0;
     NQueen(steps,n,ret);
     return ret;
 }