不知怎么的,这段程序运行后什么都不输出
#include<iostream>
#include<vector>
using namespace std;
void recurse(vector<vector<bool>> queens,vector<vector<bool>> trail,int n,int k){
if(k>n){
for(vector<vector<bool>>::iterator it=queens.begin();it!=queens.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
if(*it2){
cout<<"Q";
}else{
cout<<"*";
}
}
cout<<endl;
}
return;
}
int direct_x[8]={1,1,1,0,0,-1,-1,-1};
int direct_y[8]={1,0,-1,1,-1,1,0,-1};
vector<vector<bool>> Qtmp=queens;
vector<vector<bool>> Ttmp=trail;
for(int i=0;i<n;i++){
queens[k][i]=true;
for(int j=0;j<8;j++){
trail[k+direct_y[j]][i+direct_x[j]]=true;
}
if(!trail[k][i]){
recurse(queens,trail,n,k+1);
}
queens=Qtmp;
trail=Ttmp;
}
}
void Nqueens(int n){
vector<vector<bool>> trail;
vector<vector<bool>> queens;
for(vector<vector<bool>>::iterator it=queens.begin();it!=queens.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
*it2=0;
}
}
for(vector<vector<bool>>::iterator it=trail.begin();it!=trail.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
*it2=0;
}
}
recurse(queens,trail,n,1);
}
int main(){
int n;
cin>>n;
Nqueens(n);
}
#include<iostream>
#include<vector>
using namespace std;
void recurse(vector<vector<bool>> queens, vector<vector<bool>> trail, int n, int k) {
if(k == n) {
for(vector<vector<bool>>::iterator it=queens.begin(); it!=queens.end(); it++) {
for(vector<bool>::iterator it2=it->begin(); it2!=it->end(); it2++) {
if(*it2) {
cout<<"Q";
} else {
cout<<"*";
}
}
cout<<endl;
}
return;
}
int direct_x[8] = {1, 1, 1, 0, 0, -1, -1, -1};
int direct_y[8] = {1, 0, -1, 1, -1, 1, 0, -1};
for(int i=0; i<n; i++) {
if(!trail[k][i]) {
vector<vector<bool>> Qtmp = queens;
vector<vector<bool>> Ttmp = trail;
queens[k][i] = true;
for(int j=0; j<8; j++) {
int y = k + direct_y[j];
int x = i + direct_x[j];
if(y >= 0 && y < n && x >= 0 && x < n) {
trail[y][x] = true;
}
}
recurse(queens, trail, n, k+1);
queens = Qtmp;
trail = Ttmp;
}
}
}
void Nqueens(int n) {
vector<vector<bool>> queens(n, vector<bool>(n, false));
vector<vector<bool>> trail(n, vector<bool>(n, false));
recurse(queens, trail, n, 0);
}
int main() {
int n;
cin>>n;
Nqueens(n);
return 0;
}