py只有40分,求助,
查看原帖
py只有40分,求助,
425285
一念神魔AQ楼主2021/3/28 13:18
N,M = map(eval,input().strip().split())
lt = []
idx = [[0] * M for _ in range(N)]
for k in range(N):
    lt.append(list(' '.join(input().strip()).split()))
    
def dfs(x,y,count):
    if x>=N or y>=M: #越界
        return   
    if lt[x][y]!='W' or idx[x][y]==1:
        return
    idx[x][y] = 1
    if x==0 and y==0:
        dfs(x,y+1,count)
        dfs(x+1,y+1,count)
        dfs(x+1,y,count)
    elif y==0 and x!=0:
        dfs(x,y-1,count)
        dfs(x-1,y+1,count)
        dfs(x,y+1,count)
        dfs(x+1,y,count)
        dfs(x+1,y+1,count)
    elif x==0 and y!=0:
        dfs(x,y-1,count)
        dfs(x,y+1,count)
        dfs(x+1,y,count)
        dfs(x+1,y+1,count)
        dfs(x+1,y-1,count)
    else:
        dfs(x-1,y-1,count)
        dfs(x-1,y,count)
        dfs(x-1,y+1,count)
        dfs(x,y-1,count)
        dfs(x,y+1,count)
        dfs(x+1,y-1,count)
        dfs(x+1,y,count)
        dfs(x+1,y+1,count)
        
cnt = 0
for i in range(N):
    for j in range(M):
        if lt[i][j]=='W' and idx[i][j]==0:
            cnt += 1
            dfs(i,j,cnt)
print(cnt)
2021/3/28 13:18
加载中...