AcWing 1097. 池塘计数 python
原题链接
简单
作者:
申侠
,
2020-11-07 16:26:50
,
所有人可见
,
阅读 424
n,m = map(int, input().split())
g = []
vt = [[False for _ in range(m)] for _ in range(n)]
for _ in range(n):
t = list(input())
g.append(t)
def bfs(i,j,vt):
vt[i][j] = True
dx = [-1,0,1,0,-1,-1,1,1]
dy = [0,1,0,-1,-1,1,1,-1]
for q in dx:
for p in dy:
x = i + q
y = j + p
if x >= 0 and y >=0 and x < n and y < m and g[x][y] == 'W' and not vt[x][y]:
bfs(x,y,vt)
cnt = 0
for i in range(n):
for j in range(m):
if g[i][j] == 'W' and not vt[i][j]:
cnt += 1
bfs(i,j,vt)
print(cnt)