每日一题 第五十七期 洛谷 统计子矩阵

这篇具有很好参考价值的文章主要介绍了每日一题 第五十七期 洛谷 统计子矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[蓝桥杯 2022 省 B] 统计子矩阵

题目描述

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

输入格式

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

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

输出格式

一个整数代表答案。

样例 #1

样例输入 #1

3 4 10
1 2 3 4
5 6 7 8
9 10 11 12

样例输出 #1

19

提示

【样例说明】

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

大小为 1 × 1 1 \times 1 1×1 的有 10 10 10 个。

大小为 1 × 2 1 \times 2 1×2 的有 3 3 3 个。 大小为 1 × 3 1 \times 3 1×3 的有 2 2 2 个。

大小为 1 × 4 1 \times 4 1×4 的有 1 1 1 个。

大小为 2 × 1 2 \times 1 2×1 的有 3 3 3 个。

【评测用例规模与约定】

对于 30 % 30 \% 30% 的数据, N , M ≤ 20 N, M \leq 20 N,M20.

对于 70 % 70 \% 70% 的数据, N , M ≤ 100 N, M \leq 100 N,M100.

对于 100 % 100 \% 100% 的数据, 1 ≤ N , M ≤ 500 , 0 ≤ A i j ≤ 1000 , 1 ≤ K ≤ 2.5 × 1 0 8 1 \leq N, M \leq 500,0 \leq A_{i j} \leq 1000,1 \leq K \leq 2.5\times10^8 1N,M500,0Aij1000,1K2.5×108.

蓝桥杯 2022 省赛 B 组 F 题。文章来源地址https://www.toymoban.com/news/detail-856069.html

AC代码:

#include<iostream>

using namespace std;

typedef long long ll;
const int N = 510;
ll a[N][N];
ll n, m, k;
ll sum[N][N];
int main()
{
    cin >> n >> m >> k;
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j <= m; j ++)
        {
            cin >> sum[i][j];
            sum[i][j] += sum[i - 1][j]; 
        }
    }
    ll res = 0;
    for(int i = 1; i <= n; i ++)
    {
        for(int j = i; j <= n; j ++)
        {
            for(ll l = 1, r = 1, s = 0; r <= m; r ++)
            {
                s += sum[j][r] - sum[i - 1][r];
                while(s > k)
                {
                    s -= sum[j][l] - sum[i - 1][l];
                    l ++;
                }
                res += r - l + 1;
            }
        }
    }
    cout << res << endl;
    return 0;
}

到了这里,关于每日一题 第五十七期 洛谷 统计子矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【每日一题】1267. 统计参与通信的服务器

    这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。 示例

    2024年02月11日
    浏览(29)
  • Leetcode每日一题:1267. 统计参与通信的服务器

    这里有一幅服务器分布图,服务器的位置标识在  m * n  的整数矩阵网格  grid  中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

    2024年02月10日
    浏览(27)
  • 每日一题:leetcode 1267 统计参与通信的服务器

    这里有一幅服务器分布图,服务器的位置标识在  m * n  的整数矩阵网格  grid  中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。

    2024年02月11日
    浏览(24)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)

    点击跳转到题目位置 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 edges[i] = [u i , v i ] 表示 u i 和 v i 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。 第 j 个查询的答案是满足如下条件的点对 (a, b) 的数目: a b cnt 是与 a 或者 b

    2024年02月11日
    浏览(41)
  • 【Hive SQL 每日一题】统计用户连续下单的日期区间

    测试数据 需求说明 统计用户连续下单的日期区间,所以连续的下单日期必须 = 2 ,例如: 2023-01-01,2023-01-02 。 分析步骤如下: 按 user_id 、 order_date 进行分组,同天的下单日期只保留一条。 使用 row_number 窗口函数对行号进行标记。 使用 date_sub 函数与行号标记进行运算,如果

    2024年02月09日
    浏览(25)
  • 2023-08-24 LeetCode每日一题(统计参与通信的服务器)

    点击跳转到题目位置 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务器进行通信的服

    2024年02月10日
    浏览(32)
  • 力扣每日一题--2088. 统计农场中肥沃金字塔的数目

    看到这道题有些人很容易放弃,其实这道题不是很难,主要是题目长,读的容易让人放弃,但是 只要抓住一些性质就可以解决该问题。     本题中的定义放到图像里其实就是个金字塔,下层的那部分比上一层的那部分,长度加2, 并且该层那个长度区间内都是1才行。是个金

    2024年01月18日
    浏览(41)
  • 【力扣每日一题】2023.8.24 统计参与通信的服务器

    目录 题目: 示例: 分析: 代码: 题目顾名思义,要我们统计参与通信的服务器,给我们一个二维矩阵,元素为1的位置则表示是一台服务器。 判断一台服务器是否参与通信的条件是同一列或是同一行中也有服务器。 那么我们只需要遍历整个矩阵,遇到服务器的时候我们进

    2024年02月11日
    浏览(23)
  • 【每日一题】1523. 在区间范围内统计奇数数目,860. 柠檬水找零

    1523. 在区间范围内统计奇数数目 - 力扣(LeetCode) 给你两个非负整数  low  和  high  。请你返回   low   和   high   之间(包括二者)奇数的数目。 示例 1: 示例 2: 提示: 0 = low = high = 10^9          这是一道简单题。读完题目之后,要求奇数个数,最直接简单的想法就是

    2024年02月09日
    浏览(26)
  • 每日一题:leetcode 1448 统计二叉树中好节点的数目

    给你一棵根为  root  的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 示例 2: 示例 3: 提示: 二叉树中节点数目范围是  [1, 10^5]  。 每个节点权值的范围是  [-10^4, 10^4]  。 思路

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包