当前位置:网站首页>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()
边栏推荐
- hdu1455 Sticks (search+pruning+pruning+.....+pruning)
- 解决 cuDNN launch failure 错误
- swig 语法介绍
- .NET深入解析LINQ框架(六:LINQ执行表达式)
- Five reasons why developers choose Klocwork, a static analysis tool for code quality, for software security
- Mysql8基础知识
- 硅谷来信:快速行动,Facebook、Quora等成功的“神器”!
- Android 开发用 Kotlin 编程语言 二 条件控制
- Naive bayes
- The training set Loss converges, but the test set Loss oscillates violently?
猜你喜欢

莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》

灰度值与热成像理解

Learning Deep Compact Image Representations for Visual Tracking

后缀自动机(SAM)——黑盒使用方案

关注微信公众号,自动登陆网站

深度学习(四)分析问题与调参 理论部分

Go Quick Start Guide: Basic Types

Security Issues and Prevention in Web3

不是吧?还有人不会定位线上MySQL慢查询问题?

TiDB 6.0 Placement Rules In SQL Usage Practice
随机推荐
Flink Yarn Per Job - 启动TM,向RM注册,RM分配solt
Android 开发用 Kotlin 编程语言三 循环控制
深度学习(四)分析问题与调参 理论部分
高泽龙出席博鳌全球旅游生态大会 讲元宇宙与未来网络科技
Go编译原理系列9(函数内联)
官方发布·2022南京智博会定于10月份在新庄国展召开
knife4j
广告电商系统
消息中间件汇总
巴比特 | 元宇宙每日必读:中国1775万件数字藏品分析报告显示,85%的已发行数藏开通了转赠功能...
Mysql8基础知识
内存问题难定位,那是因为你没用ASAN
163_技巧_Power BI 一键批量建立自定义字段参数
Flink Yarn Per Job - RM启动SlotManager
hdu4545 Magic String
课表小程序使用攻略
机器学习——集成学习
分布式事务解决方案
动手学深度学习_GoogLeNet / Inceptionv1v2v3v4
【硬件架构的艺术】学习笔记(3)处理多个时钟