首页 > 其他分享 >差分矩阵

差分矩阵

时间:2024-10-22 19:20:40浏览次数:1  
标签:x1 int 矩阵 差分 x2 hou y1 y2

输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1)和(x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。
每个操作都要将选中的子矩阵中的每个元素的值加上c。

#include<iostream>
using namespace std;

int num[1010][1010], hou[1010][1010];

void insert(int x1 , int y1 , int x2 , int y2 , int c){
    hou[x1][y1] += c;
    hou[x1][y2 + 1] -= c;
    hou[x2 + 1][y1] -= c;
    hou[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 >> num[i][j];
            
    for(int i = 1 ; i <= n ; i ++)
        for( int j = 1 ; j <= m ; j ++)
            insert(i , j , i , j , num[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 ++)
            hou[i][j] = hou[i][j - 1] + hou[i - 1][j] - hou[i - 1][j - 1] + hou[i][j];
    
    for(int i = 1 ; i <= n ; i ++){
        for(int j = 1 ; j <= m ; j ++)
            cout << hou[i][j] << " ";
        cout << endl;
    }
        
    
    return 0;
}

标签:x1,int,矩阵,差分,x2,hou,y1,y2
From: https://www.cnblogs.com/lxy54/p/18493576

相关文章

  • 差分
    输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l,r,c,表示将序列中[l,r]之间的每个数加上c。#include<iostream>usingnamespacestd;intnum[100010],hou[100010];voidinsert(intl,intr,intc){hou[l]+=c;hou[r+1]-=c;}......
  • 矩阵前缀和
    输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。#include<iostream>usingnamespacestd;intnum[1010][1010],qian[1010][1010];intmain(){intn,m,q;......
  • WebGl 缩放矩阵
    缩放矩阵是线性代数中的一种矩阵,用于描述图形在空间中沿着各个坐标轴进行均匀缩放的变换。在3D图形编程中,缩放矩阵通常用于调整物体的大小,而不改变其形状。|x000||0y00||00z0||0001|其中,(x,y,z)是缩放向量,表示沿着x、y、z轴的缩放比......
  • WebGl 旋转矩阵
    旋转矩阵是一个正交矩阵,用于在二维或三维空间中描述一个坐标系绕原点的旋转。在三维空间中,旋转矩阵通常用于沿x轴、y轴或z轴进行旋转,或者沿任意给定轴线进行旋转。旋转矩阵具有一些重要性质,例如它们是正交的,即它们的共轭转置等于其逆矩阵,而且它们保持向量的长度和夹角不变。......
  • 华为od面试手撕代码真题题型1——常规字符串,数组,矩阵
    常规字符串,数组,矩阵1实现超长数字减1思路:Java中用BigInteger类publicStringsubOne(Strings){ BigIntegerbi=newBigInteger(s);bi=bi.subtract(BigInteger.ONE);returnbi.toString();}2十八进制数比较大小任意进制的字符串a,转成十进制的数:In......
  • 中心差分卡尔曼滤波(CDKF)的MATLAB代码(三维非线性)
    、CDKF三维滤波MATLAB实现目录主要特点应用场景运行结果部分代码程序架构本MATLAB程序实现了一种先进的三维状态滤波方法——协方差差分卡尔曼滤波(CDKF),专为需要精确定位和动态系统分析的用户设计。通过高效的滤波技术,显著减少噪声影响,确保系统在各种环境下的稳......
  • FPGA图像处理之构建3×3矩阵
    免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。读者在使用本文信息时,应自行验......
  • 矩阵的秩性质总结
    矩阵的秩用法实在过于灵活,写篇随笔记录一下。矩阵的秩定义矩阵的秩常见定义有以下两种:非零子式的最高阶数。行(列)向量空间的极大无关组向量个数。矩阵的秩基本性质从定义出发不难得到以下性质:\(0\ler(A)\le\min(m,n)\)。\(r(A^T)=r(A)\)。\(r(kA)=r(A)\),要求\(k\n......
  • 一类矩阵可交换问题
    Part1在开始正文部分的讨论前,先补充一些先前在Jordan标准型理论的构建中没考虑到的问题.设\(\mathcalA,\mathcalB\)是(域\(\mathbbF\)上)\(n\)维线性空间\(V\)上的线性变换.命题1:设\(f,g\in\mathbbF[x]\),则\(f(\mathcalA)\)与\(g(\mathcalA)\)可交换.......
  • cuda core实现两个128x128 float矩阵乘法demo
    #include<stdio.h>#include<cuda_runtime.h>//128x128->__global__voidmm(float*a,float*b,float*c){//8x8个方块,每个方块16x16extern__shared__floatbuf[];float*a_local=buf;float*b_local=buf+16*128;for(inti=......