dfs写t了两个点,刚开始还怀疑人生后来查了一下跟以前写的C++的dfs没啥区别,慢了20倍,是python的问题吗
附代码
n = int(input())
shu = [0 for i in range(n)]
zuoxie = [0 for i in range(2 * n)]
youxie = [0 for i in range(2 * n)]
ans = [0 for i in range(n)]
ansn = 0
def dfs(a):
global ansn
if a >= n:
if ansn <= 2:
for i in ans:
print(i + 1, end=' ')
print('')
ansn += 1
return
for i in range(n):
if shu[i] == 0 and zuoxie[n - a + i - 1] == 0 and youxie[n - a + n - i - 2] == 0:
shu[i] = 1
zuoxie[n - a + i - 1] = 1
youxie[n - a + n - i - 2] = 1
ans[a] = i
dfs(a + 1)
shu[i] = 0
zuoxie[n - a + i - 1] = 0
youxie[n - a + n - i - 2] = 0
dfs(0)
print(ansn)