|
|
|
|
#include<bits/stdc++.h>
|
|
|
|
|
using namespace std;
|
|
|
|
|
int const n=8;
|
|
|
|
|
//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
int nSolution=0;
|
|
|
|
|
int queenArr[n];
|
|
|
|
|
|
|
|
|
|
//<2F><>ӡ<EFBFBD><D3A1><EFBFBD>̺ͻʺ<CDBB>
|
|
|
|
|
void showQueens(int queenArr[],int nlen,int nSolution) {
|
|
|
|
|
//<2F>ⷨ<EFBFBD><E2B7A8><EFBFBD><EFBFBD>
|
|
|
|
|
cout<<nSolution<<endl;
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < nlen; ++i) {
|
|
|
|
|
//<2F><>ӡ<EFBFBD>ʺ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
for(int j = 0; j < queenArr[i]; ++j) {
|
|
|
|
|
cout<<"1";//<2F>ո<EFBFBD><D5B8><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
cout<<"Q";//<2F>ʺ<EFBFBD>
|
|
|
|
|
//<2F><>ӡ<EFBFBD>ʺ<EFBFBD><CABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
for(int z = 0; z < nlen-queenArr[i]-1; ++z) {
|
|
|
|
|
cout<<"1";
|
|
|
|
|
}
|
|
|
|
|
cout<<endl;
|
|
|
|
|
}
|
|
|
|
|
cout<<" "<<endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*cur<75><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0>*/
|
|
|
|
|
void search(int cur) {
|
|
|
|
|
//<2F><>cur<75><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD>ڷųɹ<C5B3>
|
|
|
|
|
if(cur == n) {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
nSolution++;
|
|
|
|
|
//<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
|
|
|
|
showQueens(queenArr ,8, nSolution);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
for(int i=0; i<n; i++) {
|
|
|
|
|
int ok = 1;
|
|
|
|
|
//<2F><><EFBFBD>ѵ<D4B0>cur<75>еĻʺ<C4BB><CABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69>
|
|
|
|
|
queenArr[cur] = i;
|
|
|
|
|
for(int j=0; j<cur; j++) {
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>ͬ<EFBFBD><CDAC>ͬ<EFBFBD><CDAC><EFBFBD>Խ<EFBFBD><D4BD>ߺ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>
|
|
|
|
|
if(queenArr[cur]==queenArr[j]||cur-queenArr[cur]==j-queenArr[j]||cur+queenArr[cur]==j+queenArr[j]) {
|
|
|
|
|
ok = 0;
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3>ݹ鲢<DDB9><E9B2A2>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(ok) {
|
|
|
|
|
search(cur+1); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
int main() {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1>Ǵ<EFBFBD><C7B4>㿪ʼ<E3BFAA><CABC>,<2C><>0<EFBFBD><30><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
search(0);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|