首页 > 编程语言 >【C++习题】26.前缀和_二维前缀和

【C++习题】26.前缀和_二维前缀和

时间:2024-12-02 19:34:11浏览次数:10  
标签:26 前缀 int arr y1 x2 习题 dp

文章目录


题目链接:

二维前缀和


题目描述:

48e93bc30446e1b89f19925207cff342


解法

d078121da19c9655ef567401348446e5

7dfc6a2c561da04e70c170e1a35a5bb9

560c6e4fd2e152869637bd1713cb73c9

前缀和

  1. 预处理一个前缀和矩阵

    dp[i,j]:表示从[1,1][i,j]位置,这段区间里面所有元素的和

    dp[i,j]:A+B+C+D = (A+B)+(A+C)+D-A = dp[i-1,j] + dp[i,j-1] + arr[i,j] - dp[i-1,j-1]

    A:(i-1)*(j-1) = dp[i-1,j-1]

    A+B:(i-1)*j = dp[i-1,j]

    A+C:(j-1)*i = dp[i,j-1]

    D:i*j = arr[i,j]

4769521ded239f9756017c4a31796f48

  1. 使用前缀和矩阵

d6cbe63614c062a79df260d61c8361e3

[x1,y1]~[x2,y2]

= D

= (A+B+C+D)-(A+B)-(A+C)+A

= dp[x2,y2]-dp[x1-1,y2]-dp[x2,y1-1]+dp[x1-1,y1-1]


C++ 算法代码:

#include <iostream>
using namespace std;
const int N = 1010;
int arr[N][N];
long long dp[N][N];
int n, m, q;
int main() {
    cin >> n >> m >> q;
	// 读入数据
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            cin >> arr[i][j];
	// 处理前缀和矩阵
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + arr[i][j] - dp[i - 1][j - 1];
	// 使用前缀和矩阵
    int x1, y1, x2, y2;
    while (q--) {
        cin >> x1 >> y1 >> x2 >> y2;
        cout << dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 - 1] << endl;
    }
}

标签:26,前缀,int,arr,y1,x2,习题,dp
From: https://blog.csdn.net/hlyd520/article/details/144196454

相关文章

  • 2024.11.26(周二)
    旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。实验要求:1. 画出对应的类图;2. 提交源代码;3. 注意编程规范。  1、类图  2、源代码#include<iostream>usingnamespaces......
  • 继承(教材3.3)课后习题三.5
    请编写一个动物类Animal,具有属性:名称和重量;具有功能:吃、睡。publicclassAnimal{protectedStringname;protecteddoubleweight;publicAnimal(Stringname,doubleweight){this.name=name;this.weight=weight;}publicvo......
  • 11.26实验 24:模板方法模式
    [实验任务一]:数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对于不同类型的数据库(如SQLServer和Oracle),其操作步骤都一致,只是连接数据库connDB()方法不同,现使......
  • 机器学习简单练习题 - 选择&简答(带答案)
    选择题(单选&多选) 机器学习发展的主要历史阶段有(多选)知识推理期知识工程期浅层学习深度学习 下列不属于机器学习的主要流派的是符号主义联想主义(联结主义)进化主义行为类推主义 下列属于数据挖掘任务的是(多选)异常检测关联分析聚类分类 ......
  • python第九章课后习题
    9.2某车间生产滚珠,随机的抽出了50粒,测得他们的直径为(单位mm)15.015.815.215.115.914.714.815.515.615.315.115.315.015.615.714.814.514.214.914.915.215.015.315.615.114.914.214.615.815.215.915.215.014.914.814.515.115.515.515.115.1......
  • AT_abc262_h [ABC262Ex] Max Limited Sequence 题解
    首先容易确定每个位置的上界,接下来考虑对每种上界分别求方案数,再乘起来。对每一种上界将其对应的位置提出来,由于是区间\(\max\),只需要关注每个位置的值是否到达这个上界\(x\)。枚举一个前缀,考虑维护\(f_i\)表示最后一个达到上界位置为\(i\),确定完这个前缀中所有数的方案数。......
  • LeetCode【0265】粉刷房子 II
    本文目录1中文题目2Python求解2.1求解思路2.2涉及方法2.3求解示例2.4Python代码2.5复杂度分析3题目总结1中文题目假如有一排房子共有n幢,每个房子可以被粉刷成k种颜色中的一种。房子粉刷成不同颜色的花费成本也是不同的。需要粉刷所有的房子并且使其相......
  • RTSP摄像头、播放器为什么需要支持H.265?
    H.264还是H.265?好多开发者在做选RTSP播放器的时候,经常问我们的问题是,用H.264好还是H.265好?本文我们就H.264和H.265的主要区别和适用场景,做个大概的交流。一、压缩效率H.265更高的压缩比H.265在相同视频质量的情况下,相比H.264能够实现更高的压缩比。一般来说,H.265的......
  • ssm电动车租赁网站(10264)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项......
  • # 26_Python基础到实战一飞冲天(二)-python基础(二十六)--缺省多值参数和递归
    26_Python基础到实战一飞冲天(二)-python基础(二十六)–缺省多值参数和递归一、缺省参数-02-指定函数缺省参数的默认值1、指定函数的缺省参数在参数后使用赋值语句,可以指定参数的缺省值。2、指定函数的缺省参数定义示例代码(dzs_14_函数的缺省参数定义.py)#dzs_14_函数的......