P1451 求细胞数量

n, m = map(int, input().split())
temp = [0] * n
# vis = [[0] * m] * n
vis = [[0 for i in range(m)] for j in range(n)]
dir_ = ((1, 0), (0, 1), (-1, 0), (0, -1))
ans = 0
for i in range(n):
    temp[i] = (list(input()))



def dfs(x, y):
    for t in range(4):
        xx = x + dir_[t][0]
        yy = y + dir_[t][1]
        if 0 <= xx < n and 0 <= yy < m and vis[xx][yy] == 0 and temp[xx][yy] != '0':
            vis[xx][yy] = 1
            dfs(xx, yy)


for i in range(n):
    for j in range(m):
        if temp[i][j] != '0' and vis[i][j] == 0:
            vis[i][j] = 1
            dfs(i, j)
            ans += 1
            #print(vis)

# print(vis)
print(ans)

 

你可能感兴趣的:(P1451 求细胞数量)