华为校招实习机试&华为社招机试20240911-1.最小距离和[100分]( Java | Python3 | C++ | C语言 | JsNode | Go)实现100%通过率

题目描述

每天早晨,环卫工人需要处理各个小区的生活垃圾,每个小区的生活垃圾由一队环卫工人负责运送到最近的垃圾回收站进行处理,求将所有小区垃圾送到垃圾回收站的最小距离和。假设小区和垃圾回收站都在都在一个m行 x n列的区域矩阵上,相邻点的距离为 1 ,只能上下左右移动;其中0表示垃圾处理站,1表示小区,2表示空白区域,-1表示障碍区域不可通行。区域内如果没有小区或者没有垃圾回收站,则最小距离和返回0。无法到达垃圾回收站的小区会单独处理,不计入本次距离和中。计算所有小区垃圾送到垃圾回收站的最小距离和。

解答要求

时间限制: C/C++ 1000ms, 其他语言:2000ms

内存限制: C/C++ 256MB, 其他语言:512MB

输入

第一行为两个数字 m 和 n,表示区域矩阵的行数和列数,中间使用空格分隔,m和n的范围均为 [1,300) 。

接下来的 m 行表示一个 m*n 的区域矩阵数组,每行的元素间以空格分隔,其中元素取值仅为-1(障碍区域)、0(垃圾处理站)、1(小区)、2(空白区域)

输出

 一个整数,表示所计算的最小距离和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值