子矩阵的和(Python实现)
代码:
# 输入数据
n, m, q = map(int, input().split())
matrix = []
for i in range(n):matrix.append(list(map(int, input().split())))
query = []
for i in range(q):query.append(list(map(int, input().split())))ls = [[0] * (m + 1) for i in range(n + 1)] # 初始化一个二维数组
# 这里尽量避免用两个列表来完成,因为这样会涉及到Python的深拷贝浅拷贝知识,初学者容易晕# 计算前缀和
for i in range(1, n + 1):for j in range(1, m + 1):ls[i][j] = ls[i - 1][j] + ls[i][j - 1] - ls[i - 1][j - 1] + matrix[i - 1][j - 1]# 最后的计算
for i in range(q):x1, y1, x2, y2 = query[i][0], query[i][1], query[i][2], query[i][3]print(ls[x2][y2] - ls[x1 - 1][y2] - ls[x2][y1 - 1] + ls[x1 - 1][y1 - 1])
这道题同样是使用前缀和的思想,再利用一些数学知识巧妙地通过求出的前缀和计算出子矩阵之和。跟之前发的一篇文章是差不多的,有兴趣的可以点开我的主页看上一篇文章。
从网上找到的算法分析:
来自(4条消息) AcWing 796. 子矩阵的和 【 二维前缀和 c++详细题解 】_林深不见鹿 的博客-CSDN博客
子矩阵的和(Python实现)相关推荐
- 取决于数学符号_设计就好像您的生活取决于它
取决于数学符号 A blood-spattered Herman Watzinger slowly walks atop the waterlogged Kon-Tiki raft. He loses ...
- python矩阵的切片——获取子矩阵
矩阵切片 矩阵为一个二维数列,所以矩阵的截取也需要包含行.列两个参数. 行.列参数切片 假设a是一个矩阵,a的截取就可写成:a[起始行 (包含): 终止行(不包含), 起始列 : 终止列],中括号中有 ...
- python算不算编程_Python 并不适合职场编程
职场人员使用 Excel 进行数据处理已经成为家常便饭.不过相信大家一定有过很无助的情况,比如复杂计算.重复计算.自动处理等,再遇上个死机没保存,整个人崩溃掉也不是完全不可能. 如果学会了程序语言,这 ...
- python创建一个类似于国家象棋棋盘的0-1矩阵_NumPy练习题(全中文并附详细讲解)...
100道 numpy 练习 1. Import the numpy package under the name np (★☆☆)') 导入numpy模块,设置别称为np import numpy a ...
- 《程序员代码面试指南第二版》Python实现(个人读书笔记)
说明 最近在读左神的书---<程序员代码面试指南-IT名企算法与数据结构题目最优解(第二版)>以及看了一些左神的基础.进阶.高频等视频课程,为了记录自己的学习成果,并且方便以后查看,将自己 ...
- Python实现im2col和col2im函数
今天来说说im2col和col2im函数,这是MATLAB中两个内置函数,经常用于数字图像处理中. 一般来说: 如果将图像分割成块的时候用的im2col参数为'distinct',那么用col2im函 ...
- python——opencv入门(一)
1. OpenCV的结构 和Python一样,当前的OpenCV也有两个大版本,OpenCV2和OpenCV3.相比OpenCV2,OpenCV3提供了更强的功能和更多方便的特性.不过考虑到和深度学习 ...
- python 的csr_python的高级数组之稀疏矩阵
稀疏矩阵的定义: 具有少量非零项的矩阵(在矩阵中,若数值0的元素数目远多于非0元素的数目,并且非0元素分布没有规律时,)则称该矩阵为稀疏矩阵:相反,为稠密矩阵.非零元素的总数比上矩阵所有元素的总数为矩 ...
- python矩阵左除_matlab学习笔记
Matlab学习笔记 运算: 1. 算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...
最新文章
- 告别AI模型黑盒子:可解释性将是数据科学的下一个“超能力”
- Android开发之发送邮件功能的实现(源代码分享)
- Javascript:必须知道的Javascript知识点之“字面量和对应类型”
- 开源数据库表结构文档生成器
- 快快: 一点即玩的游戏客户端平台
- python 实例变量_Python的类变量和实例变量详解
- 蓝桥杯练习题十六进制转十进制
- 神结合!一招玩转K8s和微服务治理
- Qt学习: QFileDialog和QMessageBox的用法和程序示例
- 前端组件化的三种方案:
- 我的地盘我做主—玩转Python函数和变量
- android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
- php微信支付接口开发程序(一)
- PLSQL自动输入select * from|附件在cnblogs文件|
- linux lsiutil raid创建,使用MegaCli工具查看状态
- JavaScript高级编程之树节点搜索过滤的设计和实现
- java源码中的生词摘录成有道词典单词本
- 美国零售数据不及预期,非美延续反弹
- 30天自制C++服务器
- 核心设计——多种电源设计应用分享