原本以为dfs肯定时间不够,还想要剪枝,但一看题目已经放水了,N、M是[1, 8]。我来个python版本的AC代码。 import sys def str2list(string):     res = []     while string != '':         res.append(int(string[0]))         string = string[1:]     return res def dfs(mei, create, temp):     if create == bai and not mei:         res.append(temp)     elif not mei:         return     else:         # d         dfs(mei[1:], create, temp + ['d'])         # l         dfs(mei[1:], [mei[0]] + create, temp + ['l'])         # r         dfs(mei[1:], create + [mei[0]], temp + ['r']) data = sys.stdin.readlines() num = len(data) max_len = int(data[0].strip()) for i in range((num - 1) // 2):     res = []     flag = True     mei = str2list(data[1 + i * 2].strip())     bai = str2list(data[2 + i * 2].strip())     print('{')     for b in bai:         if b not in mei:             flag = False     if not flag:         print('}')         continue     dfs(mei, [], [])     for j in range(len(res)):         out = ''         for s in res[j]:             out += s + ' '         print(out[:-1])     print('}')
点赞 评论

相关推荐

牛客网
牛客企业服务