第三题试着写了一下,不知道对错 import sys import copy m,n=list(map(int,sys.stdin.readline().strip().split())) num=[] for i in range(m): num.append(list(map(int,sys.stdin.readline().strip().split()))) print(num) def dfs(x,y,num,res): if num[x][y]==1: return if num[x][y]==4: return if num[x][y]==3 and [x,y] not in res: res.append([x,y]) dfs(x,y,num,res) return direction=[(1,0),(-1,0),(0,1),(0,-1)] num[x][y]=4 for dx,dy in direction: newx,newy=dx+x,dy+y if newx>=0 and newx<m and newy>=0 and newy<n: dfs(newx,newy,num,res) return res res=[] for i in range(m): for j in range(n): if num[i][j]==2: numcopy=copy.deepcopy(num) #复制一份,第一个dfs的时候防止重复循环会把走过的格子改成4 res.append(dfs(i,j,numcopy,[])) count=0 for i in res[0]: if i in res[1]: count+=1 print(count)
点赞 评论

相关推荐

牛客网
牛客企业服务