文章
25
粉丝
0
获赞
180
访问
3.8k
#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>queen(95);
int sum = 0;
int y[10];
bool check(int k){
if(k > 8){
return true;
}
return false;
}
bool pd(int k){
for(int i = 1; i < k; i++){
if(y[i] == y[k]){
return false;
}
if(abs(y[k] - y[i]) == abs(k - i)){
return false;
}
}
return true;
}
void save_queen(){
for(int i = 1; i <= 8; i++){
queen[sum].push_back(y[i]);
}
}
void DFS(int k){
if(check(k)){
save_queen();
sum ++;
return;
}
for(int i = 1; i <= 8; i++){
y[k] = i;
if(pd(k)){
DFS(k + 1);
}
}
}
int main(){
DFS(1);
int n;
while(cin>> n){
for(int i = 0; i < 8; i++){
printf("%d",queen[n-1][i]);
}
printf("\n");
}
return ...
登录后发布评论
暂无评论,来抢沙发