题目描述
blablabla
样例
#include<iostream>
using namespace std;
const int N = 10;
int n;
bool dg[N * 2], udg[N * 2], cor[N];
char q[N][N];
void dfs(int r)
{
if(r == n)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
cout << q[i][j];
cout << endl;
}
cout << endl;
return;
}
for(int i = 0; i < n; i++)
{
if(!dg[r + i] && !udg[n + i - r] && !cor[i])
{
q[r][i] = 'Q';
dg[r + i] = udg[n + i - r] = cor[i] = 1;
dfs(r+1);
q[r][i] = '.';
dg[r + i] = udg[n + i - r] = cor[i] = 0;
}
}
}
int main()
{
cin >> n;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++) q[i][j] = '.';
dfs(0);
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla