解题思路:

注意事项:

参考代码:

def dfs(x=0, y=0, add_all=0):
    global map_, visited, around, sum_, res, end_flag
    if add_all == sum_ // 2:
        end_flag = 1
        return 
    if not visited[x][y]:
        visited[x][y] = True        
        add_all += map_[x][y]
        res += 1
        for i in around:
            if 0 <= i[0] + x < n and 0 <= i[1] + y < m:
                dfs(i[0] + x, i[1] + y, add_all)
            if end_flag:
                return
        visited[x][y] = False
        res -= 1
        add_all -= map_[x][y]


m, n = map(int, input().split())
map_ = [list(map(int, input().split()))[:m] for _ in range(n)]
visited = [[False for _ in range(m)] for _ in range(n)]
around = [[1, 0], [0, 1], [-1, 0], [0, -1]]
sum_, res, end_flag = sum(sum(i) for i in map_), 0, 0
dfs()
print(res)


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区