1 条题解
-
0
思路
生成全部92组合法皇后串并按字典序查询。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; vector<string>ans;string s;bool c[8],d1[15],d2[15];void dfs(int r){if(r==8){ans.push_back(s);return;}for(int j=0;j<8;j++)if(!c[j]&&!d1[r+j]&&!d2[r-j+7]){c[j]=d1[r+j]=d2[r-j+7]=1;s+=char('1'+j);dfs(r+1);s.pop_back();c[j]=d1[r+j]=d2[r-j+7]=0;}}int main(){dfs(0);int t,k;cin>>t;while(t--){cin>>k;cout<<ans[k-1]<<'\n';}}
- 1