首页 > 雷火9月15数据挖掘编程题
头像
minghh
编辑于 2019-09-15 16:08
+ 关注

雷火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)


全部评论

(1) 回帖
加载中...
话题 回帖