AcWing 3472. 八皇后
原题链接
中等
作者:
落拓Leisure
,
2024-04-11 20:01:53
,
所有人可见
,
阅读 12
#include <iostream>
using namespace std;
const int N = 100;
int T, idx;
int res[N];
bool col[N], dg[N], udg[N];
void dfs(int u, int v)
{
if (u == 8)
{
res[ ++ idx] = v;
return;
}
for (int i = 1; i <= 8; i ++ )
if (!col[i] && !dg[i + u] && !udg[i - u + 8])
{
col[i] = dg[i + u] = udg[i - u + 8] = true;
dfs(u + 1, v * 10 + i);
col[i] = dg[i + u] = udg[i - u + 8] = false;
}
}
int main()
{
dfs(0, 0);
cin >> T;
while (T -- )
{
int x;
cin >> x;
cout << res[x] << endl;
}
return 0;
}