雷火9月15数据挖掘编程题
调整三角形顺序 ? 感觉做对了 但是一个测试用例都没过 自测了一个三角 已经样例数据上 去增加三角形 感觉没毛病
难道是理解错了嘛?
求大佬指教
from collections import deque # from itertools import combinations def jiaozheng(l,v): mm=str(min(l)) dir1=''.join(map(str,l)) *2 l[0],l[1]=l[1],l[0] dir2=''.join(map(str,l)) *2 # print(dir1,dir2) if v in dir1: for i in range(6): if dir1[i]==mm: return list(map(int,dir1[i:i+3])) else: for i in range(6): if dir2[i]==mm: return list(map(int,dir2[i:i+3])) def generateV(l): return [(l[0],l[1]),(l[1],l[2]),(l[2],l[0])] N,M =map(int,input().strip().split()) allTri=[] hashkey=[set() for _ in range((N+1))] for i in range(M): sanjiao=list(map(int,input().strip().split())) for point in sanjiao: hashkey[point].add(i) allTri.append(sanjiao) # print(allTri) # print(hashkey) queue=deque([]) ifchange=[0]*M first=allTri[0] v0=str(first[0])+str(first[1]) allTri[0]=jiaozheng(first,v0) ifchange[0]=1 for a,b in generateV(allTri[0]): for t in list(hashkey[a].intersection(hashkey[b])): if ifchange[t]==0: queue.append((t,str(b)+str(a))) while queue: # print(queue) indd,vv=queue.popleft() allTri[indd]=jiaozheng(allTri[indd],vv) ifchange[indd]=1 for a,b in generateV(allTri[indd]): for t in list(hashkey[a].intersection(hashkey[b])): if ifchange[t]==0: queue.append((t,str(b)+str(a))) for prin in allTri: print(*prin)