题目描述
blablabla
样例
n=int(input())
N=20
used=[[0]*n for i in range(n)]
for i in range(n):
for j in range(n):
used[i][j]='.'
dg,udg,col=[False]*N,[False]*N,[False]*N
def dfs(u):
if u==n:
for i in range(n):
for j in range(n):
print(used[i][j],end='')
print()
print()
return
for i in range(n):
if (not dg[i+u] and not col[i] and not udg[n-i+u]):
col[i],dg[i+u],udg[n-i+u]=True,True,True
used[u][i]='Q'
dfs(u+1)
col[i],dg[i+u],udg[n-i+u]=False,False,False
used[u][i]='.'
dfs(0)
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla