当前位置: 首页 > article >正文

18440二维差分

18440二维差分

⭐️难度:中等
📖
在这里插入图片描述
📚


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[1010][1010];
        int[][] b = new int[1010][1010];

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                a[i][j] = scanner.nextInt();
                b[i][j] = a[i][j] + a[i-1][j-1] - a[i-1][j] - a[i][j-1]; // 求差分数组
            }
        }

        // 子矩阵求和
        for (int i = 0; i < q; i++) {
            int x1 = scanner.nextInt();
            int y1 = scanner.nextInt();
            int x2 = scanner.nextInt();
            int y2 = scanner.nextInt();
            int d = scanner.nextInt();
            
            b[x1][y1] += d;
            b[x1][y2+1] -= d;
            b[x2+1][y1] -= d;
            b[x2+1][y2+1] += d;
        }
        
        // 差分数组求前缀和还原原数组
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                b[i][j] = b[i][j] - b[i-1][j-1] + b[i-1][j] + b[i][j-1]; // 直接用b数组求前缀和
                System.out.print(b[i][j]+" ");
            }
            System.out.println();
        }
    }
}

🐱笔记
在这里插入图片描述

背公式,用公式。


http://www.kler.cn/a/565563.html

相关文章:

  • RustDesk开源远程桌面工具部署【图文详解】
  • python-leetcode-使用最小花费爬楼梯
  • Spring Boot 事件机制
  • Android8.1以上接收静态广播
  • 1-7makefile
  • 若依前后端分离版配置流程
  • 重庆市智慧政务服务“渝快办”工作规范标准规范
  • 【2022——暴力DP / 优雅背包】
  • Vue打包(webpack)缓存
  • CodeMeter SmartBind® 软授权智能绑定技术
  • 汽车v型推力杆总成三维5自由度性能及疲劳测试系统
  • 深度学习之-“全连接网络的反向传播”
  • TikTok隐私保护措施:确保用户安全
  • 利用 AWS API Gateway 和 Lambda 节省成本的指南
  • 数据库基础一(初步了解数据库)
  • 分布式锁—1.原理算法和使用建议二
  • 基于Matlab的多目标粒子群优化
  • 从“Switch-case“到“智能模式“:C#模式匹配的终极进化指南
  • 基于大数据的空气质量数据可视化分析系统
  • OpenCV给图像添加噪声