孤岛的总面积

direction = [[0,1],[1,0],[-1,0],[0,-1]]
count = 0
def dfs(graph,x,y):
    graph[x][y] = 0
    global count 
    count += 1
    for i,j in direction:
        curx = x+i
        cury = y+j
        if 0<=curx<len(graph) and 0<=cury<len(graph[0]):
            if graph[curx][cury] == 1:
                dfs(graph,curx,cury)


n,m = map(int,input().split())
graph = []
for i in range(n):
    graph.append(list(map(int,input().split())))

for i in range(n):
    if graph[i][0] == 1:
        dfs(graph,i,0)
    if graph[i][m-1] == 1:
        dfs(graph,i,m-1)
for i in range(m):
    if graph[0][i] == 1:
        dfs(graph,0,i)
    if graph[n-1][i] == 1:
        dfs(graph,n-1,i)

count = 0
for i in range(n):
    for j in range(m):
        if graph[i][j] == 1:
            dfs(graph,i,j)
print(count)

101. 孤岛的总面积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值