Acwing798.差分矩阵

前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)_前缀和差分_林小鹿@的博客-CSDN博客

代码展示:

cpp 复制代码
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 1e3 + 10;
int a[N][N], b[N][N];
void insert(int x1, int y1, int x2, int y2, int c)
{
    b[x1][y1] += c;
    b[x2 + 1][y1] -= c;
    b[x1][y2 + 1] -= c;
    b[x2 + 1][y2 + 1] += c;
}
int main()
{
    int n, m, q;
    cin >> n >> m >> q;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            cin >> 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;
        cin >> 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 - 1][j] + b[i][j - 1] - b[i - 1][j - 1];  //二维前缀和
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= m; j++)
        {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}
相关推荐
前端拿破轮19 分钟前
🤡🤡🤡面试官:就你这还每天刷leetcode?连四数相加和四数之和都分不清!
算法·leetcode·面试
雷羿 LexChien20 分钟前
C++内存泄漏排查
开发语言·c++
地平线开发者44 分钟前
征程 6|工具链量化简介与代码实操
算法·自动驾驶
嘉小华1 小时前
CMake 完全指南:第一章 - 构建的烦恼 - 为什么需要CMake?
c++
DoraBigHead1 小时前
🧠 小哆啦解题记——谁偷改了狗狗的台词?
算法
Kaltistss1 小时前
240.搜索二维矩阵Ⅱ
线性代数·算法·矩阵
Feliz Da Vida1 小时前
[代码学习] c++ 通过H矩阵快速生成图像对应的mask
c++·学习
轻语呢喃1 小时前
每日LeetCode:合并两个有序数组
javascript·算法
大熊猫侯佩2 小时前
Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
算法·swift
杰克尼2 小时前
2. 两数相加
算法