二维差分数组(JAVA)蓝桥杯

二维差分数组可以根据二维前缀和数组移项得到,对二维差分数组bij加或者减去一个数,就意味着计算二维前缀和数组后的原数组从这个点开始到最后一个点的矩形都加上或者减去这个数。所以可以根据上面的计算。

java 复制代码
package com.js.datastructure.recursion.蓝桥;

import java.util.Scanner;

public class 二维差分 {
    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+2][m+2];
        //操作完成后可以直接在差分数组上求前缀和
        int[][] b = new int[n+2][m+2];

        //计算差分数组
        for (int i = 1; i < n+1; i++) {
            for (int j = 1; j < m+1; j++) {
                a[i][j] = scanner.nextInt();
                b[i][j] = a[i][j] - a[i-1][j] - a[i][j-1] + a[i-1][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[x2+1][y1] -= d;
            b[x1][y2+1] -= d;
            b[x2+1][y2+1] += d;
        }

        //计算前缀和并输出原数组
        for (int i = 1; i < n+1; i++) {
            for (int j = 1; j < m+1; j++) {
                b[i][j] = b[i][j] + b[i-1][j] + b[i][j-1] - b[i-1][j-1];
                System.out.print(b[i][j] + " ");
            }
            System.out.println();
        }
    }
}
相关推荐
古法安卓5 小时前
Android-日志系统源码解析
android·java·android studio
小夏coding6 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng7 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛8 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko8 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
用户31268748772012 小时前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang12 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing12 小时前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
吃饱了得干活13 小时前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端
lhldsg14 小时前
AI零售系统实战指南:从架构设计到落地部署全解析
java·人工智能·小程序·uni-app·零售