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]);
        }
    }
}
相关推荐
写写闲篇儿2 小时前
下一个更大元素(一)
数据结构·算法
MobotStone3 小时前
从金鱼记忆到过目不忘:Transformer 如何让AI真正理解一句话?
算法
炽烈小老头4 小时前
【每天学习一点算法 2025/12/19】二叉树的层序遍历
数据结构·学习·算法
Xの哲學5 小时前
Linux grep命令:文本搜索的艺术与科学
linux·服务器·算法·架构·边缘计算
soft20015255 小时前
MySQL Buffer Pool深度解析:LRU算法的完美与缺陷
数据库·mysql·算法
WBluuue5 小时前
AtCoder Beginner Contest 436(ABCDEF)
c++·算法
fie88895 小时前
广义 S 变换(GST)地震信号时频谱
算法
json{shen:"jing"}6 小时前
1-C语言的数据类型
c语言·c++·算法
im_AMBER6 小时前
数据结构 13 图 | 哈希表 | 树
数据结构·笔记·学习·算法·散列表
LYFlied6 小时前
【算法解题模板】动态规划:从暴力递归到优雅状态转移的进阶之路
数据结构·算法·leetcode·面试·动态规划