题目描述:统计监控、需要打开多少监控器
在一长方形停车场内,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开,给出某一时刻停车场的停车分布,请统计最少需要打开多少个监控器。
输入
第一行输入m,n表示长宽,满足1 < m,n <= 20;
后面输入m行,每行有n个0或1的整数,整数间使用一个空格隔开,表示该行已停车情况,其中0表示空位,1表示已停;
输出
最少需要打开监控器的数量。
ACM输入输出模式
如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。
所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout,python使用input()/print()。JavaScript使用node的readline()和console.log()。Java 使用sacnner/system.out.print()
用例一
输入
3 3
0 0 0
0 1 0
0 0 0
输出
5
用例二
输入
3 3
1 0 0
0 1 0
0 0 0
输出
6
机考代码查重
华为OD机考完成之后,官方会进行代码查重。华为 od 机考确实有很大的概率抽到原题。如果碰到了题库中的原题,一定不要直接使用题解中的代码,尤其是变量名,一定要修改,可以改成毫无意义的单词。除了变量名之外,代码的组织结构和逻辑一定要进行改变,这就要求在日常的刷题中,提前编写好属于自己的代码。
C++
#include <iostream>
using namespace std;
int main() {
int rows, cols;
cin >> rows >> cols;
int** parkingLot = new

华为OD机考中的统计问题,要求根据停车场的停车分布,计算最少需要开启多少个监控器来覆盖所有停车位置。题目涉及ACM输入输出模式,提供C++、Java、JavaScript、Python四种语言的代码示例,并包含多个用例供考生练习。考试后还有代码查重环节,提醒考生避免原题代码的直接使用。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



