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

【Acwing】差分矩阵

 

 图1:a和b数组映射表

由于a是b的前缀和数组,因此改变b[ x1][ y1]之后,受到影响的a中元素如右半图所示

   图2:求b数组的前缀和 

#include<bits/stdc++.h>
using namespace std;int n,m,q;
int a[1010][1010];
int b[1010][1010];int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>m>>q;for(int i=1;i<=n;++i)for(int j=1;j<=m;++j){cin>>a[i][j];// 关于为什么要这么做,请看图1b[i][j] += a[i][j];b[i+1][j+1] += a[i][j];b[i][j+1] -= a[i][j];b[i+1][j] -= a[i][j];}int x1,y1,x2,y2,c;for(int i=1;i<=q;++i){cin>>x1>>y1>>x2>>y2>>c;b[x1][y1] += c;b[x2+1][y2+1] += c;b[x1][y2+1] -= c;b[x2+1][y1] -= c;}// 求前缀和,也就是由b数组得到变化后的a数组// 详见图2for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){b[i][j] -= b[i-1][j-1];b[i][j] += b[i][j-1];b[i][j] += b[i-1][j];cout<<b[i][j]<<' ';}cout<<'\n';}return 0;
}

http://www.lryc.cn/news/308379.html

相关文章:

  • Linux系统加固:如何有效管理系统账号
  • 在Windows中安装PyTorch
  • 助力智能化农田作物除草,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统
  • linux nasm汇编中调用printf不报错,但调用scanf报错。抛出了分段错误(核心转储)
  • Linux系统——Nginx负载均衡模式
  • 【自然语言处理之语言模型】讲解
  • 输入一个整数n,输出这个整数的二进制的0和1的个数
  • 初阶数据结构:链表相关题目练习(补充)
  • java: 错误: 不支持发行版本 5
  • springSecruity--->和springboot结合的跨域问题
  • 网关kong记录接口处理请求和响应插件 tcp-log-with-body的安装
  • ElasticSearch之Completion Suggester
  • ant 布局组件 组件等高设置
  • 不可多得的干货,网易的朋友给我这份339页的Android面经
  • Qt项目:网络1
  • 软件测试有哪些常用的测试方法?
  • 【C语言基础】:深入理解指针(一)
  • 单点故障解决方案之Smart Link与Monitor Link
  • QT之QSharedMemory共享内存
  • string 类 经典习题之数字字符相加
  • 通讯录——C语言实现
  • 优思学院|3步骤计算出Cpk|学习Minitab
  • 【Java编程进阶之路 06】深入探索:JDK、JRE与JVM的关系与差异
  • Linux中的touch命令
  • 智能驾驶规划控制理论学习-基于采样的规划方法
  • 二叉树——二叉树所有路径
  • 算法训练营day38(补),动态规划6
  • 【java、微服务、nacos】nacos服务分级存储模型
  • 共享旅游卡:打开0费用旅游新纪元,探索40+精彩线路
  • MQTT协议解析:揭秘固定报头、可变报头与有效载荷的奥秘