当前位置:网站首页>798. 差分矩阵
798. 差分矩阵
2022-08-10 03:41:00 【Hunter_Kevin】
题目
输入一个 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
代码
#include <iostream>
using namespace std;
const int N = 1010;
int a[N][N], b[N][N];
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 >> a[i][j];
// a[i][j]是b[i][j]的矩阵前缀和数组,围绕a数组和b数组的关系来写代码即可
b[i][j] = a[i][j] - a[i][j-1] - a[i-1][j] + a[i-1][j-1];
}
while(q --){
int x1, y1, x2, y2, c;
cin >> x1 >> y1 >> x2 >> y2 >> c;
b[x1][y1] += c;
b[x1][y2+1] -= c;
b[x2+1][y1] -= c;
b[x2+1][y2+1] += c;
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
a[i][j] = a[i][j-1] + a[i-1][j] - a[i-1][j-1] + b[i][j];
cout << a[i][j] << ' ';
}
cout << endl;
}
return 0;
}
边栏推荐
猜你喜欢
【网络迁移】Pytorch中的torch.no_grad对应MindSpore哪个方法
No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
Software life cycle (the work of each phase of software engineering)
ES高亮显示语法
最牛最全的 Postman 实现 API 自动化测试教程
测试工作管理与规范
Mini Program Navigation and Navigation Parameters
2022年P气瓶充装操作证考试题库及模拟考试
【mindspore】【Categorical】softmax数据放入Categorical类出现和不为1的错误
请问mindspore支持l1范数归一化吗
随机推荐
ES高亮显示语法
electron 应用开发优秀实践
Pytorch中的torch.index_select对应MindSpore哪个方法
数据仓库建模实践
自定义训练,使用Generator dataset迭代数据报错
【Mindspore】【310推理】导入mindir文件出错
sql优化
C语言原码,反码,补码与大小端
ZZULIOJ:1017: 判断正整数位数
测试常见问题100类(1)
一种能让大型数据聚类快2000倍的方法,真不戳
No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
Flink CDC介绍和个人理解
Flink学习15:Flink自定义数据源
sql注入之宽字节注入,limit,order by
YAPI使用
TCP协议之《ACK pingpong交互模式详解》
PID整定方法
暑假第三周总结博客 - 五种传值方式
874. 筛法求欧拉函数