学习目标:
分享寒假每日刷的算法题,冲击4月蓝桥杯!!冲冲冲
原题:全球变暖(2018省赛)
题目描述:
输入描述 :
示例:
题解:
思路(BFS):
代码实现(Python):
from collections import *
n = int(input())
map = []
for i in range(n):
map.append(list(input()))
vis = [[0 for i in range(n)]for j in range(n)]
def bfs(x,y):
dirs = [(1,0),(0,1),(-1,0),(0,-1)]
flag = True
q = deque()
q.append((x,y))
vis[x][y] = 1
while q:
nx,ny = q.popleft()
if map[nx-1][ny]=="#" and map[nx+1][ny]=="#" and map[nx][ny+1]=="#" and map[nx][ny-1]=="#":
flag = False
for i in range(4):
nnx,nny = nx + dirs[i][0], ny + dirs[i][1]
if vis[nnx][nny] == 0 and map[nnx][nny] == "#":
q.append((nnx,nny))
vis[nnx][nny] = 1
return flag
ans = 0
for i in range(n):
for j in range(n):
if map[i][j] == "#" and vis[i][j] == 0:
if bfs(i,j):
ans += 1
print(ans)