#[i for i in a if not 2==i] def ys(mem,ln,ai):     print(mem)     co = 0     if len(ln)==0:return True     if A[ai]==0:         for idx,c in enumerate(ln):             tf = True             if c>mem[-1]:                 zz = [i for i in ln if not c==i]                 tf = tf and ys(mem+[c],zz,ai+1)             else:tf = False#;return False             if tf:co+=1     elif A[ai]==1:         for idx,c in enumerate(ln):             tf = True             if c<mem[-1]:                 zz = [i for i in ln if not c==i]                 tf = tf and ys(mem+[c],zz,ai+1)             else:tf = False#;return False             if tf:co+=1     return co #N = int(input().strip()) #A = [int(i) for i in input().strip().split()] N = 4#int(input().strip()) A = [1,1,0]#[int(i) for i in input().strip().split()] def so():     if N<=0 :return 0     if N ==1:return 1     ln = [i for i in range(1,N+1)]     tmp = []     count = 0     for idx,c in enumerate(ln):         tmp = [c]         zz= [i for i in ln if not c==i]         #import pdb;pdb.set_trace()         count += ys(tmp,zz,0)     return count print(so())    
点赞 评论

相关推荐

牛客网
牛客企业服务