当前位置:网站首页>798. 差分矩阵
798. 差分矩阵
2022-08-05 11:46:00 【aJupyter】
Question
输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。
每个操作都要将选中的子矩阵中的每个元素的值加上 c。
请你将进行完所有操作后的矩阵输出。
输入格式
第一行包含整数 n,m,q。
接下来 n 行,每行包含 m 个整数,表示整数矩阵。
接下来 q 行,每行包含 5 个整数 x1,y1,x2,y2,c,表示一个操作。
输出格式
共 n 行,每行 m 个整数,表示所有操作进行完毕后的最终矩阵。
数据范围
1≤n,m≤1000,
1≤q≤100000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤c≤1000,
−1000≤矩阵内元素的值≤1000
输入样例:
3 4 3
1 2 2 1
3 2 2 1
1 1 1 1
1 1 2 2 1
1 3 2 3 2
3 1 3 4 1
输出样例:
2 3 4 1
4 3 4 1
2 2 2 2
Ideas
二维差分
Code
''' 二维差分,下标从1开始 初始化操作;(l1,r1),(l2,r2) 区间+c: def insert(l1,r1,l2,r2,v): b[l1][r1] += v b[l2+1][r1] -= v b[l1][r2+1] -= v b[l2+1][r2+1] += v '''
N = 1010
a = [[0]]
b = [[0 for i in range(N)] for j in range(N)]
n,m,q = list(map(int,input().strip().split()))
for i in range(n):
a.append([0]+list(map(int,input().strip().split())))
def insert(l1,r1,l2,r2,v):
b[l1][r1] += v
b[l2+1][r1] -= v
b[l1][r2+1] -= v
b[l2+1][r2+1] += v
# 初始化差分
for i in range(1,n+1):
for j in range(1,m+1):
insert(i,j,i,j,a[i][j])
# 区间加和
for i in range(q):
x1,y1,x2,y2,v = list(map(int,input().strip().split()))
insert(x1,y1,x2,y2,v)
# 求前缀和
for i in range(1,n+1):
for j in range(1,m+1):
b[i][j] = b[i-1][j] + b[i][j-1] - b[i-1][j-1] + b[i][j]
# 输出
for i in range(1,n+1):
for j in range(1,m+1):
print(b[i][j],end=' ')
print()
边栏推荐
- 60行从零开始自己动手写FutureTask是什么体验?
- Flink Yarn Per Job - RM启动SlotManager
- hdu1455 Sticks (search+pruning+pruning+.....+pruning)
- 四、kubeadm单master
- 安全软件Avast与赛门铁克诺顿NortonLifeLock合并获英国批准
- The importance of parameter naming, remember a JDBC parameter conflict
- 【HMS core】【FAQ】Health Kit、Ads kit、push Kit典型问题合集5
- 字节秋招二面把我干懵了,问我SYN报文什么情况下会被丢弃?
- Keras 分割网络自定义评估函数 - mean iou
- 解决 cuDNN launch failure 错误
猜你喜欢
使用Netty编写通用redis客户端(可指定服务器地址与端口号连接任意redis)
澳洲站:电吹风AS/NZS 60335.2.23: 2017 安全标准测试
Flink Yarn Per Job - 启动TM,向RM注册,RM分配solt
再获殊荣 | 赛宁网安入选2022年度“培育独角兽”企业榜单
官方发布·2022南京智博会定于10月份在新庄国展召开
【HMS core】【FAQ】Health Kit、Ads kit、push Kit典型问题合集5
莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》
【着色器实现Flicker“DJ”闪烁效果_Shader效果第十五篇】
五大理由告诉你为什么开发人员选择代码质量静态分析工具Klocwork来实现软件安全
“蘑菇书”是怎样磨出来的?
随机推荐
Cesium.js点线面绘制
swig 语法介绍
机器学习——逻辑回归
四、kubeadm单master
Android development with Kotlin programming language - basic data types
花的含义
Can't get in to ask questions.I want to ask you a question about the return value (traversal of the graph), please give Xiaobai an answer.
学习用于视觉跟踪的深度紧凑图像表示
Mysql8基础知识
祝所有码农七夕快乐~
不是吧?还有人不会定位线上MySQL慢查询问题?
手把手教你定位线上MySQL慢查询问题,包教包会
IPMP、PMP、CPMP三个证书该如何选择,有什么区别,哪个对于工作上的
UDP communication
Linux: Remember to install MySQL8 on CentOS7 (blog collection)
数据治理体系演进简介
支持向量机SVM
“小钢炮”气质明显,安全、舒适一个不落
60行从零开始自己动手写FutureTask是什么体验?
163_技巧_Power BI 一键批量建立自定义字段参数