AcWing 796. 子矩阵的和

解题思路

样例

1 7 2 4

3 6 2 8

2 1 2 3
求任意子矩阵的和

二维前缀和公式

相关代码

复制代码
import java.util.Scanner;

public class Main {


    public static void main(String[] args){
        //二维子矩阵的元素和
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int q = scanner.nextInt();
        int a[][] = new int[n+1][m+1];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                a[i][j] = scanner.nextInt();

        //进行前缀和预处理
        int s[][] = new int[n+1][m+1];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+a[i][j];


        while(q-->0){
            int x1 = scanner.nextInt();
            int y1 = scanner.nextInt();
            int x2 = scanner.nextInt();
            int y2 = scanner.nextInt();
            System.out.println(s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]);
        }
    }
}
相关推荐
MM_MS1 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E1 小时前
【二分法】寻找峰值
算法
mit6.8242 小时前
位运算|拆分贪心
算法
ghie90902 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体12 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9982 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx2 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++3 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd3 小时前
C++引用:高效编程的别名利器
算法
鱼跃鹰飞3 小时前
Leetcode1891:割绳子
数据结构·算法