才知道python里面for循环是不能永久更改循环变量i的值啊,只能换为while循环了;80分怎么调啊,求大佬帮忙!
def dfs(root):
global res,find
if (find==1):
return
if (root>N):
# 消耗一次深搜找到火星人初始序列
res+=1
if (res==M+1):
find=1
print(" ".join(map(str,arr[1:N+1])))
return
i=1
while (i>=1 and i<N+1):
# 找火星人初始序列所在字典位次
if (res==0):
# 强制让空格处的数字i等于火星人在本空格处的数字
i=mars_man[root]
if(not visit[i]):
arr[root]=i
visit[i]=1
dfs(root+1)
arr[root]=0
visit[i]=0
i+=1
## for i in range(1,N+1):
## # 找火星人初始序列所在字典位次
## if (res==0):
## # 强制让空格处的数字i等于火星人在本空格处的数字
## i=mars_man[root]
## if(not visit[i]):
## arr[root]=i
## visit[i]=1
## dfs(root+1)
## arr[root]=0
## visit[i]=0
N=int(input())
M=int(input())
# 火星人初始序列
mars_man=[0]+list(map(int,input().split()))
res=0
visit=[0]*(N+1)
arr=[0]*(N+1)
find=0
dfs(1)