华为OD机试真题-探索地块建立【2023Q1】

题目描述

给一块n * m的地块,相当于n * m的二维数组,每个元素的值表示这个小地块的发电量;求在这块地上建立正方形的边长为c的发电站,发电量满足目标电量k的地块数量。
输入描述:
第一行为四个按空格分隔的正整数,分别表示n, m , c k。后面n行整数,表示每个地块的发电量
输出描述:
输出满足条件的地块数量
示例:
输入:
2 5 2 6 // n m c k,下面每行是n*m地块每格的发电量
1 3 4 5 8
2 3 6 7 1
输出:
4
说明:
满足条件的地块有以下几种
第一种:
1 3
2 3
第二种:
3 4
3 6
第三种:
4 5
6 7
第四种:
5 8
7 1

解题思路

计算累计发电量矩阵(本质上就是前缀和矩阵)。从左上角开始,计算每个点到该点为止的矩形区域内的发电量总和。累计发电量矩阵的计算方法如下:

你可能感兴趣的:(Python,JS),java,算法,开发语言,华为,深度优先)