第三题又鼓捣了一下,整了个并查集解法,写不下分两拨 import sys m,n=list(map(int,sys.stdin.readline().strip().split())) road=[] for i in range(m): road.append(list(map(int,sys.stdin.readline().strip().split()))) fa=[i for i in range(m*n)] def find(x): global fa if fa[x]==x: return x else: fa[x]=find(fa[x]) return fa[x] def union(x,y): fa[find(x)]=find(y) def isnear(x,y,n): hangx=x//n hangy=y//n liex=x%n liey=y%n return (hangx==hangy and abs(liex-liey)==1) or (liex==liey and abs(hangx-hangy)==1) island=[] people=[] restrant=[]
点赞 1

相关推荐

牛客网
牛客企业服务