题目 2659:蓝桥杯2022年第十三届省赛真题

编程入门 行业动态 更新时间:2024-10-11 21:23:23

题目 2659:蓝桥杯2022年第十三届省赛<a href=https://www.elefans.com/category/jswz/34/1769885.html style=真题"/>

题目 2659:蓝桥杯2022年第十三届省赛真题

题目描述

给定一个 N × M 的矩阵 A,请你统计有多少个子矩阵 (最小 1 × 1,最大 N × M) 满足子矩阵中所有数的和不超过给定的整数 K?

输入格式

第一行包含三个整数 N, M 和 K.

之后 N 行每行包含 M 个整数,代表矩阵 A.

输出格式

一个整数代表答案。

样例输入

3 4 10

1 2 3 4

5 6 7 8

9 10 11 12

样例输出

19

提示

满足条件的子矩阵一共有 19,包含:

大小为 1 × 1 的有 10 个。

大小为 1 × 2 的有 3 个。

大小为 1 × 3 的有 2 个。

大小为 1 × 4 的有 1 个。

大小为 2 × 1 的有 3 个。

对于 30% 的数据,N, M ≤ 20. 对于 70% 的数据,N, M ≤ 100.

对于 100% 的数据,1 ≤ N, M ≤ 500; 0 ≤ Ai j ≤ 1000; 1 ≤ K ≤ 250000000.


思路:

一开始我们都会想到二维前缀和、四层循环暴力枚举,但果不其然肯定是超时的
后来借鉴了其他大佬的解法后, 发现用双指针可以优化,减小时间复杂度
用二维数组去表示了每一列的前缀和,然后通过控制上下边界和左右边界的移动来控制矩阵的大小以及它的遍历

我们可以通过样例来简单模拟一下

更多推荐

题目 2659:蓝桥杯2022年第十三届省赛真题

本文发布于:2024-02-11 23:48:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684383.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:真题   第十三届   题目   蓝桥杯

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!