You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.2 KiB

2 years ago
#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;
}