晚风


私信TA

用户名:uq_24611172404

访问量:2491

签 名:

等  级
排  名 5234
经  验 1572
参赛次数 0
文章发表 35
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

from collections import deque

n=int(input())

m=[[i for i in input()]for _ in range(n)]

v=[[0 for _ in range(n)] for _ in range(n)]

dir=[[1,0],[-1,0],[0,1],[0,-1]]

flag=True

def bfs(x,y):

    q=deque([(x,y)])

    global flag

    while q:

        x,y=q.popleft()

        if m[x+1][y]=='#' and m[x-1][y]=='#' and m[x][y+1]=='#' and m[x][y-1]=='#':

            flag=False

        for i in range(4):

            nx=x+dir[i][0]

            ny=y+dir[i][1]

            if 0<=nx<n and 0<=ny<n and m[nx][ny]=="#" and v[nx][ny]==0:

                v[nx][ny]=1

                q.append((nx,ny))

ans=0

for i in range(n):

    for j in range(n):

        if m[i][j]=='#'and v[i][j]==0:

            v[i][j]=1

            flag=True

            bfs(i,j)

            if flag==True:

                ans+=1

print(ans)


 

0.0分

0 人评分

  评论区

  • «
  • »