网易严选 数据分析 第二道编程题
N个人去看电影,但有些人不能坐在一起,求可能的座位顺序组合。
不知道自己的解法对不对,期待有大神给个评价!
def dfs(visited,i):
visited.append(i)
if len(visited)==n:
ann=visited[:] # need copy here
final_visited.append(ann)
else:
connect=[j for j in range(n) if relation[i][j]==1 and j not in visited] # who can be connected by i
if connect:
for pp in connect:
dfs(visited,pp)
visited.pop()
n,k=[int(s) for s in input().split()]
relation=[[1 for i in range(n)] for i in range(n)]
for i in range(k):
w1,w2=[int(s) for s in input().split()]
relation[w1-1][w2-1]=0
relation[w2-1][w1-1]=0
final_visited=[]
for i in range(n):
visited=[]
dfs(visited,i)
for i in range(len(final_visited)):
aa=final_visited[i]
for j in raneg(n):
print(aa[j],end=' ')