求助:python是不是不能过八皇后
查看原帖
求助:python是不是不能过八皇后
71890
韩信楼主2021/4/12 11:29

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)

2021/4/12 11:29
加载中...