#include
#define maxn 9
int c[maxn];
int n, tot, x;
void search(int cur){
int i, j;
if (cur > n){
++tot;
if(tot == x){
for(j = 1; j <= n; ++j)
printf("%d", c[j]);
printf("\n");
}
return;}
for(i = 1; i <= n; ++i){
if(tot==x) return;
int ok = 1;
c[cur] = i;
for(j = 1; j < cur; ++j){
if(c[cur] == c[j] || c[cur]+cur == c[j]+j || c[cur]-cur == c[j]-j){ok = 0; break;}
}
if(ok) search(cur+1);
}
}
int main(){
int t;
scanf("%d", &t);
while(t--){
n = 8;
scanf("%d", &x);
tot = 0;
search(1);
}
return 0;
}
百练 2754八皇后问题
最新推荐文章于 2017-12-03 21:07:31 发布