Acwing796.子矩阵的和

理解二维前缀和:

cpp 复制代码
#include <iostream>

using namespace std;

const int N = 1010;

int a[N][N], s[N][N];

int main() {
    int n, m, q;
    cin >> n >> m >> q;

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++) {
            scanf("%d", &a[i][j]);
            s[i][j] = s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1] + a[i][j]; // 求前缀和
        }

    while (q--) {
        int x1,y1,x2,y2;
        scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
        // 算子矩阵的和
        printf("%d\n", s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1]);
    }

    return 0;
}
相关推荐
你怎么知道我是队长23 分钟前
C语言---循环结构
c语言·开发语言·算法
艾醒26 分钟前
大模型面试题剖析:RAG中的文本分割策略
人工智能·算法
老赵的博客40 分钟前
c++ unqiue指针
java·jvm·c++
程序猿编码1 小时前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
怎么没有名字注册了啊2 小时前
MFC_Install_Create
c++·mfc
Wadli2 小时前
C++语法 | static静态|单例模式
开发语言·c++·单例模式
纪元A梦3 小时前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans
_不会dp不改名_3 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
进击的_鹏3 小时前
【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等
开发语言·c++
mark-puls3 小时前
C语言打印爱心
c语言·开发语言·算法