# coding=utf-8 t=int(input()) for i in range(t): n,m=map(int,input().split()) mg=[] for i in range(n): h=[] hstr=input() for j in range(m): h.append(hstr[j]) mg.append(h) for i in range(n): for j in range(m): if mg[i][j]=="S": x_start,y_start=i,j dengdai=[[x_start,y_start,0]] fx=[[0,-1],[0,1],[-1,0],[1,0]] while dengdai: x,y,step=dengdai.pop(0) for x_y in fx: nx,ny=x+x_y[0],y+x_y[1] if 0<=nx<n and 0<=ny<m and mg[nx][ny]=="E": x,y,step=nx,ny,step+1 break elif 0<=nx<n and 0<=ny<m and mg[nx][ny]=="-": mg[nx][ny]=step+1 dengdai.append([nx,ny,step+1]) if mg[x][y]=="E": break if mg[x][y]=="E": print(step) else: print(-1) /************************************************************** Problem: 2125 User: admin Language: Python Result: Accepted Time:129 ms Memory:34612 kb ****************************************************************/