洛谷_P1219 [USACO1.5] 八皇后 Checker Challenge_python写法

P1219 [USACO1.5] 八皇后 Checker Challenge - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

python 复制代码
n = int(input())

a = [0 for _ in range(1,2*n+100)]   #标记行
b = [0 for _ in range(1,2*n+100)]   #标记列
c = [0 for _ in range(1,2*n+100)]   #标记左下到右上的对角线
d = [0 for _ in range(1,2*n+100)]   #标记左上到右下的对角线
sum = 0
def printf():
    global sum

    if sum <=2:
        for i in range(1,n+1):
            print(a[i],end=' ')
        print('\n',end='')
    sum += 1
def dfs(i):

    for j in range(1,n+1):
        # if i+j<n+1 and abs(i-j)<n+1 :
        if b[j] == 0 and d[i-j+n] == 0 and c[i+j]==0:
            a[i] = j
            b[j] = 1
            c[i + j] = 1
            d[i-j+n] = 1
            dfs(i+1)
            b[j] = 0
            c[i + j] = 0
            d[i-j+n] = 0

            if i==n :
                printf()
                return

dfs(1)
print(sum)

不知道该怎么优化了,输入13,这个案例跑起来超时了。

相关推荐
Zero-Talent13 小时前
位运算算法
算法
不穿格子的程序员13 小时前
从零开始刷算法——双指针-三数之和&接雨水
算法·双指针
无限进步_14 小时前
C语言数组元素删除算法详解:从基础实现到性能优化
c语言·开发语言·windows·git·算法·github·visual studio
松涛和鸣14 小时前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法
Booksort14 小时前
【LeetCode】算法技巧专题(持续更新)
算法·leetcode·职场和发展
OJAC11114 小时前
2026高校毕业生1270万!但这些学生却被名企用高薪“提前预定”!
算法
Controller-Inversion14 小时前
岛屿问题(dfs典型问题求解)
java·算法·深度优先
小白程序员成长日记14 小时前
力扣每日一题 2025.11.28
算法·leetcode·职场和发展
Swift社区14 小时前
LeetCode 435 - 无重叠区间
算法·leetcode·职场和发展
sin_hielo14 小时前
leetcode 1018
算法·leetcode