羅区P1219八のクイーンズ私。。。。。。

コード1    (学校の弟版)

#include <ビット/ STDC ++ H.>
使用して名前空間STD;
int型のL [15];
BOOL S [15]; // SADが同じ機能スラッシュは、ABS()は絶対値を表しているかどうかを判断する
SAD BOOL(int型のx、int型I){// xは現在の行で、iはライン片の現在位置である
 (INT J = 1、J <X; J ++){// J 行の前L [j]は、j番目の行の位置を示します
  (ABS(XJ)== ABS場合 (IL [J]))falseを返す; // もし同じ対角線上に、ライン-前の列の行=絶対値-列の絶対値
 }
 trueに戻り;
}
int型N-、CNT;
ボイドプリント(){
 用(INT I = 1; I <= N - 、Iは++)
  COUT << L [I] << "";
 COUT << ENDL; //ラップ
}
インラインボイドDFS( Xはint){
         // X COUT << << ENDL、デバッグ部
 。== +(N-X IF 1){
  ++ CNT;
  IF(CNT <= 3)。
   プリント();
  を返します;
 }
 以下のために(INT i = 1; iが <= N; iは++){// X 電流線、iは現在の行の位置である
  場合(!S [I] || SAD(X、I))// 場合に同じランプラインは、ライン-前の行=行の絶対値-列の絶対値が
   続行;
          // << COUT "asdawe" << ENDL;デバッグ部分
  S [I]がtrueに=;
  L [X] = I;
  DFS (X + 1);
  S [I]はfalse =;
  L [X]は= 0;
 }
}
(){int型メイン
 CIN N - >>;
 DFS(1);
 COUT << CNTは、
 0を返します;
}

 

コード2人の先輩版!

#include <ビット/ STDC ++。H>
名前空間stdを使用。
int型N;
INTチェス[15]。
ブールフラグ[100]。
すべて= 0 int型。
BOOL isUseful(INT NUM、INTロケート){
 (INT I = 1 iは++; iが見つけ<)のための
  IF(ABS(チェス[I] - NUM)==を(見つける-I))を
   falseを返します。
 trueを返します。
}
void print() {
 for(int i = 1; i<=N; i++)
  cout << chess[i] << " ";
 cout << endl;
}
void dfs(int num) {
 if(num==N+1) {
  all++;
  if(all<=3)
   print();
  return;
 }
 for(int i = 1; i<=N; i++) {
  if(!flag[i] && isUseful(i,num)) {
   chess[num] = i;
   flag[i] = true;
   dfs(num+1);
   flag[i] = false;
  }
 }
}
int main() {
 cin >> N;
 dfs(1);
 cout << all <<endl;
 return 0;
}
 
 
代码3  王某人版
#include<cstdio>
#include<cstring>
int r[15], c[15], zd[30], cd[30],cnt;
int n;
void print(){
 for (int i = 1; i <= n; ++i)
  printf("%d ", r[i]);
 puts("");
}
inline void dfs(int x){
 if (x == n + 1){
  ++cnt;
  if (cnt <= 3)
   print();
  return;
 }
 for (int i = 1; i <= n; ++i){
  if (c[i] || zd[x - i + n + 1] || cd[i + x])
   continue;
  c[i] = zd[x - i + n + 1] = cd[i + x] = 1;
  r[x] = i;
  dfs(x + 1);
  c[i] = zd[x - i + n + 1] = cd[i + x] = 0;
  r[x] = 0;
 }
}
int main(){
 scanf("%d", &n);
 dfs(1);
 printf("%d", cnt);
 return 0;
}

おすすめ

転載: www.cnblogs.com/QingyuYYYYY/p/11621945.html