深度优先遍历,注意回溯 打表法:先求出所有解,再存入一个容器中 # define  _CRT_SECURE_NO_WARNINGS # include  <iostream> # include  <vector> using  namespace  std; vector< vector< int >>  queenVec; void  DFSFindQueen ( vector< int > &  queen,  int  pos)  { for  ( int  i =  1 ;  i <=  8 ;  ++ i)  { bool  isOk =  true ; for  ( int  j =  0 ;  j <  pos;  ++ j)  { if  ( queen[ j]  ==  i ||  pos -  j ==  queen[ j]  -  i ||  pos -  j ==  i -  queen[ j] )  { isOk =  false ; break ; } } if  ( isOk)  { queen. push_back ( i) ; if  ( pos ==  7 )  { queenVec. push_back ( queen) ; printf ( "\"" ) ; for  ( int  k =  0 ;  k <  8 ;  k++ ) { printf ( "%d" ,  queen[ k] ) ; } printf ( "\",\n" ) ; } else  { DFSFindQueen ( queen,  pos +  1 ) ; } queen. pop_back ( ) ; } } 
} vector< string>  queenString =  { "15863724" , "16837425" , "17468253" , "17582463" , "24683175" , "25713864" , "25741863" , "26174835" , "26831475" , "27368514" , "27581463" , "28613574" , "31758246" , "35281746" , "35286471" , "35714286" , "35841726" , "36258174" , "36271485" , "36275184" , "36418572" , "36428571" , "36814752" , "36815724" , "36824175" , "37285146" , "37286415" , "38471625" , "41582736" , "41586372" , "42586137" , "42736815" , "42736851" , "42751863" , "42857136" , "42861357" , "46152837" , "46827135" , "46831752" , "47185263" , "47382516" , "47526138" , "47531682" , "48136275" , "48157263" , "48531726" , "51468273" , "51842736" , "51863724" , "52468317" , "52473861" , "52617483" , "52814736" , "53168247" , "53172864" , "53847162" , "57138642" , "57142863" , "57248136" , "57263148" , "57263184" , "57413862" , "58413627" , "58417263" , "61528374" , "62713584" , "62714853" , "63175824" , "63184275" , "63185247" , "63571428" , "63581427" , "63724815" , "63728514" , "63741825" , "64158273" , "64285713" , "64713528" , "64718253" , "68241753" , "71386425" , "72418536" , "72631485" , "73168524" , "73825164" , "74258136" , "74286135" , "75316824" , "82417536" , "82531746" , "83162574" , "84136275" 
} ; int  main ( ) 
{ int  n; scanf ( "%d" ,  & n) ; for  ( int  i =  0 ;  i <  n;  i++ ) { int  b; scanf ( "%d" ,  & b) ; printf ( "%s\n" ,  queenString[ b- 1 ] . c_str ( ) ) ; } return  0 ; 
}