1. 程式人生 > 其它 >1214:八皇后

1214:八皇后

八皇后

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 const int N=10;
 7 int a[N],ans[100],sum;
 8 void print(){
 9     int res=0;
10     for(int i=1;i<=8;i++){
11         for(int j=1;j<=8;j++)
12             if(a[j]==i){
13                 res=res*10
+j; 14 break; 15 } 16 } 17 ans[sum++]=res; 18 // cout<<res<<endl; 19 } 20 bool check(int x,int d){ 21 for(int i=1;i<d;i++){ 22 if(a[i]==x||x-a[i]==d-i||x-a[i]==i-d) 23 return 0; 24 } 25 return 1; 26 } 27 void solve(int
d){ 28 if(d==9){ 29 print(); 30 return; 31 } 32 for(int i=1;i<=8;i++){ 33 if(check(i,d)){ 34 a[d]=i; 35 solve(d+1); 36 } 37 } 38 } 39 bool compare(int x,int y){ 40 return x<y; 41 } 42 int main(){ 43 solve(1); 44 sort(ans,ans+sum,compare);
45 int n,t; 46 cin>>n; 47 while(n--){ 48 cin>>t; 49 cout<<ans[t-1]<<endl; 50 } 51 return 0; 52 }