Python搜索学习
P1219 [USACO1.5] 八皇后 Checker Challenge
学了一个 global 定义,是要在函数里面进行申明的,在外面申明会报错,idk why?
上代码:
lie=[0]*100
xie=[0]*100
now=[0]*100
tot=0
def dfs(x):
global tot
if x>n:
tot+=1
if tot<=3:
for i in range(1,n+1):
print(now[i],end=" ")
print()
return
for i in range(1,n+1):
if(lie[i]==0 and xie[x-i+50]==0 and xie[x+i]==0):
lie[i]=1
xie[x-i+50]=1
xie[x+i]=1
now[x]=i
dfs(x+1)
lie[i]=0
xie[x-i+50]=0
xie[x+i]=0
return
n=int(input())
dfs(1)
print(tot)
马蜂较丑陋~~

浙公网安备 33010602011771号