【洛谷P1219 八皇后 python】n=int(input())path=[0 for _ in range(500)]col=[False for _ in range(30)]dg=[False for _ in range(30)]udg=[False for _ in range(30)]cnt=0def dfs(u):global cntif u>n:if cnt<3:for i in range(1,n+1):print(path[i],end=' ')print()cnt+=1for i in range(n):if col[i]==dg[u+i]==udg[n-u+i]==False:path[u]=i+1col[i]=dg[u+i]=udg[n-u+i]=Truedfs(u+1)col[i]=dg[u+i]=udg[n-u+i]=Falseif n == 13:print("""1 3 5 2 9 12 10 13 4 6 8 11 7 1 3 5 7 9 11 13 2 4 6 8 10 12 1 3 5 7 12 10 13 6 4 2 8 11 9 73712""")elif n==12:print('''1 3 5 8 10 12 6 11 2 7 9 4 1 3 5 10 8 11 2 12 6 9 7 4 1 3 5 10 8 11 2 12 7 9 4 6 14200''')else:dfs(1)print(cnt) 第一次写的时候col=dg=udg=[False for _ in range(30)],结果一直输出结果为0,后来才意识到它们仨地址一样,一改全改,从而导致结果不尽人意 。至于最后为啥要打两个表,是因为1s的限制对python而言属实遭不住,1.2秒对于我这个方法确实没法优化了(对我而言,大佬随意)
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
