2023-8-15差分矩阵

题目链接:差分矩阵

c++ 复制代码
#include <iostream>

using namespace std;

const int N = 1010;

int n, m, q;
int a[N][N], b[N][N];

void insert(int x1, int y1, int x2, int y2, int c)
{
    b[x1][y1] += c;
    b[x1][y2 + 1] -= c;
    b[x2 + 1][y1] -= c;
    b[x2 + 1][y2 + 1] += c;
}

int main()
{
    scanf("%d%d%d", &n, &m, &q);
    for(int i = 1; i <= n; i ++)
        for(int j = 1; j <= m; j ++)
            scanf("%d", &a[i][j]);
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            insert(i, j, i, j, a[i][j]);
    while(q --)
    {
        int x1, y1, x2, y2, c;
        scanf("%d%d%d%d%d", &x1, &y1, &x2, &y2, &c);
        insert(x1, y1, x2, y2, c);
    }
    
    // 构造前缀和
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j ++)
            b[i][j] += b[i][j - 1] + b[i - 1][j] - b[i - 1][j - 1];
    for(int i = 1; i <= n; i ++)
    {    
        for(int j = 1; j <= m; j++) printf("%d ", b[i][j]);
        puts("");
    }        
    return 0;
}
相关推荐
会Tk矩阵群控的小木8 小时前
小红书矩阵系统开发:私域流量转化与管理完整技术实现
矩阵·新媒体运营·开源软件·个人开发·tk
AI_yangxi8 小时前
短视频矩阵系统服务商
大数据·人工智能·矩阵
装不满的克莱因瓶10 小时前
实现矩阵的转置:从数学原理到 NumPy 实战
线性代数·机器学习·矩阵·数据分析·numpy·特征分解
吃好睡好便好11 小时前
矩阵旋转的计算
学习·线性代数·算法·矩阵
列星随旋13 小时前
矩阵快速幂
java·算法·矩阵
装不满的克莱因瓶14 小时前
机器学习和数据科学的基石:NumPy详解与实战技巧
人工智能·线性代数·机器学习·ai·矩阵·numpy
吃好睡好便好14 小时前
矩阵秩的计算
人工智能·学习·线性代数·算法·机器学习·matlab·矩阵
装不满的克莱因瓶15 小时前
实现矩阵的点积:从数学原理到 NumPy 实战
人工智能·线性代数·算法·机器学习·矩阵·numpy
lqqjuly15 小时前
线性代数公式大全
线性代数
kaikaile199515 小时前
平面桁架 Matlab 刚度矩阵计算程序
matlab·平面·矩阵