在实验课摸🐟写八皇后 两年前拼尽全力无法战胜现在终于能两分钟秒掉
作者:
Return.
,
2025-04-10 17:13:03
· 安徽
,
所有人可见
,
阅读 60
#include <bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;
const int N = 11;
char g[N][N];
bool col[N],dg[2 * N],udg[2 * N];
int n;
void dfs(int u)
{
if(u == n)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
cout << g[i][j];
}
cout << endl;
}
cout << endl;
return;
}
for(int i = 0; i < n; i++)
{
if(!col[i] && !dg[u + i] && !udg[n - i + u])
{
g[u][i] = 'Q';
col[i] = dg[u + i] = udg[n - i + u] = true;
dfs(u + 1);
g[u][i] = '.';
col[i] = dg[u + i] = udg[n - i + u] = false;
}
}
}
void solve()
{
cin >> n;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
g[i][j] = '.';
}
}
dfs(0);
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
int t = 1;
while(t -- ) solve();
return 0;
}