AcWing 1113. 红与黑(python,简单易懂)
原题链接
简单
作者:
海猫大帝
,
2024-04-01 23:48:23
,
所有人可见
,
阅读 3
mx=[1,0,-1,0]
my=[0,-1,0,1] 位移代码
def bfs(x,y):
if x==-1 or x==h or y==-1 or y==w or a[x][y]=='#' or ans[x][y]==1: 边界代码
return 0
ans[x][y]=1
for i in range(4):
bfs(x+mx[i],y+my[i])
while(1):
w,h=map(int,input().split())
if w==0 and h==0:
break
a=[]
ans=[[0]*w for i in range(h)]
for i in range(h):
b=input()
a.append(b)
key=0
for i in range(h):
if key:
break
for j in range(w):
if a[i][j]=='@': 找起点
bfs(i,j)
key=1
print(sum(sum(row) for row in ans))
break